Я запускаю сервер Ubuntu 12.04 LTS. У меня в настоящее время проблема, когда один из моих использованных пакетов вызывает раздражающую ошибку. Вместо того, чтобы удалять его и просто строить из источника, я хочу интегрировать его в управление пакетами Ubuntus / Debians.
Исходя из ArchLinux, мы сделали это, скопировав оригинальный PKGBUILD и изменив его таким образом, чтобы он компилирует новый пакет. Это очень простой процесс, но он информирует диспетчера пакетов об этом пакете, даже если он не имеет локальных репозиториев.
Есть ли аналогичный способ для Ubuntu / Debian? Могу ли я легко создать свой пакет на устаревшей версии Ubuntu и установить этот пакет вместо исходного репозитория?
new : В отношении программного обеспечения есть libvirt (мне нужно 0.9.13 на по крайней мере, 12.04 работает 0.9.8), и хотя я был бы признателен за решение для этого конкретного пакета в комментариях, я ищу более общее решение для таких проблем, если они возникнут в будущем.
Вопреки вопросы Как я могу вручную собрать свой собственный пакет «трудный путь»? и что является простейшим Debian Packaging Guide? Я не заинтересован в создании нового пакета, но вместо этого использовал существующие ресурсы и обновил их до более новой версии.
Как раз для того, чтобы сделать свой собственный рог, я создаю решение для этого точного обстоятельства.
Это оболочный скрипт longool и доступен на GitHub через вышеупомянутую ссылку.
. Вы можете загрузить пакет, Создание пакетов Debian из исходного кода может быть громоздким, особенно на ежедневном драйвере, который вы не обязательно хотите путаться с многочисленными зависимостями сборки и т. Д.
Предполагая, что libvirt доступен через источники, выполните следующую команду :
debtool --download --unpack libvirt
Вышеупомянутая команда только что загрузила файл libvirt и распаковала его в каталог libvirt_0.9.8_all.
Кроме того, вы можете распаковать версия libvirt_0.9.8_all , которая в настоящее время установлена в вашей системе:
debtool --unpack libvirt
На этом этапе вы должны внести все свои изменения в файлы в каталоге. Вероятно, вы также захотите увеличить номер версии пакета (т.е. 0.9.8-custom1), расположенный в ./libvirt_0.9.8_all/DEBIAN/control.
Теперь создайте пакет, выполнив следующую команду:
debtool --build ./libvirt_0.9.8_all
Ваш готовый пакет теперь находится в текущем каталоге как ./ libvirt_0.9.8_all / DEBIAN / control .
Вы можете быстро переустановить этот пакет, выполнив debtool --reinst ./libvirt_0.9.8-custom1_all.deb или, альтернативно, debtool --build --reinst ./libvirt_0.9.8_all, чтобы построить и переустановить одним махом.
Вы также можете выполнить пару других связанных задач с deboolool [ ! d18]
Если в репозиториях доступно несколько версий пакета, вы можете перечислить их следующим образом:
debtool --show zsh
Вышеупомянутая команда будет верните следующее:
zsh 5.0.5-4ubuntu1~ubuntu14.04.1 amd64
zsh 5.0.2-3ubuntu6 amd64
Если вы хотите загрузить пакеты вручную, вы можете использовать опцию --show-format.
debtool --show --show-format zsh
Вернет следующее: [ ! d24]
apt-get download zsh=5.0.5-4ubuntu1~ubuntu14.04.1 -a=amd64
apt-get download zsh=5.0.2-3ubuntu6 -a=amd64
Вы можете скачать самую последнюю версию пакет следующим образом:
debtool --download zsh
Вы можете загрузить определенную версию следующим образом:
debtool --download zsh=5.0.2-3ubuntu6
Вы можете распаковать пакет на жестком диске диск:
debtool --unpack package.deb
Вы также можете распаковать пакет, который в настоящее время установлен в вашей системе:
debtool --unpack package
Если вы внесли изменения в любой из установленных файлов, они будут быть включенным также. Это идеально, если вы хотите работать с пакетом, который больше не доступен из источников или если вы хотите включить ранее существовавшие исправления в «исправленный» deb.