Вопрос: как создать deb-пакет? Давайте поговорим на такую тему. Общий порядок процесса я примерно знаю: распаковывается архив с исходниками пакета, затем запускается программа dh_make, которая создаёт скелет проекта, затем нужно подредактировать файлы debian/rules и debian/control. Затем запускется программа dpkg-buildpackade, которая скомпилирует исходники и упакует всё в deb-пакет. Есть по этому алгоритму несколько непоняток, например по программам из пакета debhelper, которые должны запускаться из скрипта debian/rules, проще было бы не самостоятельно переводить описания этого пакета с английского языка, а посоветоваться с более опытными программистами, что я тут и хочу сделать.
Но сейчас вопрос не об этом. Речь о проприетарных программах, поставляющися не в виде исходников, а в виде бинарного файла-инсталятора с расширением bin или run. Возможно ли такую программу упаковать в пакет? Наверняка можно отследить изменения в файловой системе, которые делает инсталятор, какие файлы распаковываются, какие скрипты запускаются.
LinuxForum.Fans
Создание deb-пакетов
Автор: Iskatel
5 сообщений
3004 просмотров
Если инсталлятор имеет опцию --repackage или подобную, я не вижу проблемы.
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В чём затык произошёл?
Опять же в тему - инсталятор WebStorm не имеет опций
В чём затык произошёл?
«Оно» не увидело каких-то файлов:
cp: cannot stat `/srv/src/fglrx-install.XKDMUX/x710_64a/*
которые хотело куда-то скопировать. Нет ли у этого *.run опции, запрещающей удаление временных файлов?
Войдите или зарегистрируйтесь, чтобы ответить.