Полезные советы. Создание deb пакетов.
22.02.2009Перестройка .deb пакета может понадобиться для лучшего использования, например добавить md5sum файлы Для начала необходимо распаковать из .deb пакета необходимые файлы, которые вы хотите изменить.
Для примера вы можете скачать и распаковать rsync пакет и управляющие файлы в текущую директорию, набрав команду:
$ aptitude download rsync
Далее распаковываем файлы из пакета и управляющие файлы.
$ sudo dpkg -x rsync_2.6.9-3ubuntu1.1_i386.deb /tmp/rsync_$RANDOM $ sudo dpkg -e rsync_2.6.9-3ubuntu1.1_i386.deb /tmp/rsync_17197
Теперь перейдите в директорию пакета, куда вы распаковали файлы из .deb и посмотрите структуру директории:
$ cd /tmp/rsync_17197 $ ls -lart
Теперь необходимо создать специальную поддиректорию rsync_2.6.9-3cn1.1/DEBIAN (для соответствия формату dpkg, который необходим для создания .deb файла). Далее переместить в нее управляющие файлы:
$ sudo mkdir -p rsync_2.6.9-3cn1.1/DEBIAN $ sudo mv control conffiles prerm postrm postinst rsync_2.6.9-3cn1.1/DEBIAN
Также необходимо скопировать /etc и /usr директории в rsync_2.6.9-3cn1.1:
$ sudo mv etc usr rsync_2.6.9-3cn1.1/DEBIAN
Теперь переместите md5sums файлы, созданные ранее, в поддиректорию DEBIAN и переименуйте в md5sums:
$ sudo mv /var/lib/dpkg/info/rsync.md5sums rsync_2.6.9-3cn1.1/DEBIAN/md5sums
Далее нужно открыть управляющий файл и изменить версию (Version) на rsync_2.6.9-3cn1.1, например с помощью vi:
$ sudo vi rsync_2.6.9-3cn1.1/DEBIAN/control
Также можно изменить Description. Дописать дату и причину изменения.
Теперь можно сделать пакет используя dpkg -b. на основе созданных директорий и управляющих файлов. Будет предупреждение о Original-Maintainer, можно проигнорировать данное сообщение.
$ sudo dpkg -b rsync_2.6.9-3cn1.1
У вас теперь есть .deb пакет, по которому dpkg может показать информацию с помощью опции -I:
$ dpkg -I rsync_2.6.9-3cn1.1.deb
И можно устанавливать получившийся пакет:
$ sudo dpkg -i rsync_2.6.9-3cn1.1.deb
ПАМЯТКА Для более подробной информации по построению пакета .deb воспользуйтесь howto, man и info страницами по dpkg-deb.