Каков правильный способ создания собственных пакетов для локальной установки?

Я запускаю сервер Ubuntu 12.04 LTS. У меня в настоящее время проблема, когда один из моих использованных пакетов вызывает раздражающую ошибку. Вместо того, чтобы удалять его и просто строить из источника, я хочу интегрировать его в управление пакетами Ubuntus / Debians.

Исходя из ArchLinux, мы сделали это, скопировав оригинальный PKGBUILD и изменив его таким образом, чтобы он компилирует новый пакет. Это очень простой процесс, но он информирует диспетчера пакетов об этом пакете, даже если он не имеет локальных репозиториев.

Есть ли аналогичный способ для Ubuntu / Debian? Могу ли я легко создать свой пакет на устаревшей версии Ubuntu и установить этот пакет вместо исходного репозитория?

new : В отношении программного обеспечения есть libvirt (мне нужно 0.9.13 на по крайней мере, 12.04 работает 0.9.8), и хотя я был бы признателен за решение для этого конкретного пакета в комментариях, я ищу более общее решение для таких проблем, если они возникнут в будущем.

Вопреки вопросы Как я могу вручную собрать свой собственный пакет «трудный путь»? и что является простейшим Debian Packaging Guide? Я не заинтересован в создании нового пакета, но вместо этого использовал существующие ресурсы и обновил их до более новой версии.

1
задан 13 April 2017 в 15:24

1 ответ

Как раз для того, чтобы сделать свой собственный рог, я создаю решение для этого точного обстоятельства.

Это оболочный скрипт 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, чтобы построить и переустановить одним махом.

Etcetera

Вы также можете выполнить пару других связанных задач с 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

Загрузить архивы Debian

Вы можете скачать самую последнюю версию пакет следующим образом:

debtool --download zsh

Вы можете загрузить определенную версию следующим образом:

debtool --download zsh=5.0.2-3ubuntu6

Распаковка пакетов

Вы можете распаковать пакет на жестком диске диск:

debtool --unpack package.deb

Вы также можете распаковать пакет, который в настоящее время установлен в вашей системе:

debtool --unpack package

Если вы внесли изменения в любой из установленных файлов, они будут быть включенным также. Это идеально, если вы хотите работать с пакетом, который больше не доступен из источников или если вы хотите включить ранее существовавшие исправления в «исправленный» deb.

1
ответ дан 24 May 2018 в 12:28
  • 1
    В зависимости от того, как локальный означает локальный, и если вы хотите получить стабильное программное обеспечение, этот процесс должен быть расширен в пользовательский репозиторий (а не ppa). Обратите внимание, как это делается для многих перекомпонованных дистрибутивов, таких как Zorin, Mint, Peppermint и т. Д. – mckenzm 30 January 2017 в 06:20

Другие вопросы по тегам:

Похожие вопросы: