LinuxForum.Fans
Тема

Создание deb-пакетов

Автор: Iskatel 5 сообщений 3004 просмотров
#303846

Вопрос: как создать deb-пакет? Давайте поговорим на такую тему. Общий порядок процесса я примерно знаю: распаковывается архив с исходниками пакета, затем запускается программа dh_make, которая создаёт скелет проекта, затем нужно подредактировать файлы debian/rules и debian/control. Затем запускется программа dpkg-buildpackade, которая скомпилирует исходники и упакует всё в deb-пакет. Есть по этому алгоритму несколько непоняток, например по программам из пакета debhelper, которые должны запускаться из скрипта debian/rules, проще было бы не самостоятельно переводить описания этого пакета с английского языка, а посоветоваться с более опытными программистами, что я тут и хочу сделать.

Но сейчас вопрос не об этом. Речь о проприетарных программах, поставляющися не в виде исходников, а в виде бинарного файла-инсталятора с расширением bin или run. Возможно ли такую программу упаковать в пакет? Наверняка можно отследить изменения в файловой системе, которые делает инсталятор, какие файлы распаковываются, какие скрипты запускаются.

#303875

Если инсталлятор имеет опцию --repackage или подобную, я не вижу проблемы.

#303982

yars, спасибо за совет, не задумывался. Запустил инсталятор драйвера catalist с опцией --help и убедился, что он умеет создавать пакеты наиболее распространённых дистрибутивов. Однако при попытке:

text
$ fakeroot ./amd-driver-installer-catalyst-13.1-linux-x86.x86_64.run --buildpkg Debian/testing
Created directory fglrx-install.XKDMUX
Verifying archive integrity... All good.
Uncompressing AMD Catalyst(TM) Proprietary Driver-9.012.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
=====================================================================
 AMD Catalyst(TM) Proprietary Driver Installer/Packager 
=====================================================================
Generating package: Debian/testing
cp: cannot stat `/srv/src/fglrx-install.XKDMUX/x710_64a/*': No such file or directory
Package build failed!
Package build utility output:
dpkg-buildpackage: warning: using a gain-root-command while being root
dpkg-buildpackage: source package fglrx-installer
dpkg-buildpackage: source version 9.012-1
dpkg-buildpackage: source changed by AMD: Advanced Micro Devices. <http://ati.amd.com/support/driver.html>
 dpkg-source --before-build fglrx.kjPxxG
dpkg-buildpackage: host architecture amd64
 debian/rules build
dh_testdir
# move licenses away from binary dir
if [ ! -d usr/share/doc/fglrx ]; then \
          mkdir -p usr/share/doc/fglrx; \
          mv usr/X11R6/bin/LICENSE.* usr/share/doc/fglrx; \
        fi
# set executable on user apps
find usr/X11R6/bin -type f | xargs chmod a+x
# remove exec bit from files that don't deserve it
find usr/X11R6/include \
             usr/X11R6/lib \
             usr/X11R6/lib64 \
             usr/share usr/src     -type f | xargs chmod -x
find: `usr/X11R6/include': No such file or directory
find lib -not -name "*.sh" -type f | xargs chmod -x
find lib      -name "*.sh" -type f | xargs chmod +x
# set proper permissions on /etc files
if [ -d etc/ati ]; then                 \
                chmod 755 etc/ati ;                     \
                chmod 644 etc/ati/* ;           \
                chmod a+x etc/ati/*.sh ;        \
        fi
if [ -f debian/fglrx.default ]; then \
          mv -v debian/fglrx.default debian/fglrx; \
        fi
`debian/fglrx.default' -> `debian/fglrx'
# remove exec bit from 64-bit libs too
find usr/X11R6/lib64       -type f | xargs chmod -x
 fakeroot debian/rules binary
fakeroot: FAKEROOTKEY set to 220903287
fakeroot: nested operation not yet supported
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 1
Removing temporary directory: fglrx-install.XKDMUX

В чём затык произошёл?

#321079

Опять же в тему - инсталятор WebStorm не имеет опций

#321081
"Iskatel" написал:
В чём затык произошёл?

«Оно» не увидело каких-то файлов:

"Iskatel" написал:
cp: cannot stat `/srv/src/fglrx-install.XKDMUX/x710_64a/*

которые хотело куда-то скопировать. Нет ли у этого *.run опции, запрещающей удаление временных файлов?

Войдите или зарегистрируйтесь, чтобы ответить.