Как изменить пакет deb?

Что я сделал до сих пор

  • Я скачал исходный код официального deb-пакета из ubuntu-репозиториев.
  • я применил патч.
  • побежал настроить и сделать успешно.
  • тестировал программу.

Что бы я хотел сделать

  • Я хотел бы создать пакет deb из этого, используя всю информацию (зависимости и т. д.) Из старого пакета.

мой вопрос (они тесно связаны)

  1. есть ли простой (=в основном автоматизированный) способ сделать это?
  2. могу ли я просто скопировать двоичные файлы в старый файл deb?
  3. будут ли мои изменения перезаписаны после обновления исходного пакета в репозиториях?
  4. Если да, то как избежать этого?
  5. есть ли способ пометить его как" альтернативную "версию, которая удовлетворяет всем" входящим " зависимостям исходного пакета?

дополнительные info

  • я запускаю Ubuntu 9.04, 32bit, меня не волнуют другие арки/версии на данный момент.
  • пакета в вопрос с Compiz-гном.
  • изменение очень незначительное и не добавляет никаких зависимостей.
6
задан joe
27.12.2022 23:27 Количество просмотров материала 3683
Распечатать страницу

5 ответов

Я нашел следующее руководство на форумах Ubuntu для перестройки пакета network manager здесь

Re: Как исправить источник deb

цитата: Первоначально опубликовано cord

Я хочу в основном перестроить пакет network manager с помощью специального патча, чтобы что-то проверить. Поэтому я хочу: 1. получить исходный код для ubuntu "версия" network manager

код:

sudo apt-get source network-manager

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

цитата: 3. сделайте deb-файл, который я могу установить вместо текущего сетевого менеджера.

Выполнить Код:

dpkg-buildpackage -rfakeroot -uc -b
в каталоге создано.

также нашел эту статью : Руководство Для Новых Сопровождающих Debian Глава 6-сборка пакета


Что касается ваших изменений, потерянных обновлением из официальных репозиториев, я не уверен. Вы всегда можете просто отправить патч обратно в compiz-gnome пакета мейнтейнеров или создайте свой собственный репозиторий для обновленного пакета.

4
отвечен lyarwood 2022-12-29 07:15

процедура, которую я использую это:

получить источник (через apt-get src).

применить патч, или делать все, что нужно изменить.

run debchange --nmu и введите описание внесенного изменения. Это автоматически увеличит номер версии, чтобы система не пыталась "обновить" пользовательский пакет обратно до стандартного.

Run debuild.

наслаждайтесь файлами deb.

4
отвечен Ryan Thompson 2022-12-29 09:32

ответ на #3 и #4, что вы должны поместить пакет в провести статус после установки версии. Это говорит системе управления пакетами Debian "держать" любые будущие изменения в этом пакете, фактически позволяет управлять пакетом вручную.

из Debian часто задаваемые вопросы:

7.11 что означает неизвестный, установить, удалить, очистить и удерживать в состоянии пакета?

эти "хочу" флаги указывают, что пользователь хотел сделать с пакетом (на что указывают либо действия пользователя в разделе" Select " программы dselect, либо прямые вызовы dpkg).

их значения:

  • неизвестно-пользователь никогда не указывал, нужен ли ему пакет>

  • install - пользователь хочет, чтобы пакет был установлен или обновлен

  • удалить-пользователю нужен пакет удалено, но не требуется удалять существующие файлы конфигурации.

  • очистить-пользователь хочет, чтобы пакет был удален полностью, включая его >файлы конфигурации.

  • hold - пользователь хочет, чтобы этот пакет не обрабатывался, т. е. он хочет сохранить текущую версию с текущим статусом, независимо от того, что это.

7.12 как поставить посылку на удержание?

там есть три способа сдерживания пакетов: с помощью dpkg, aptitude или dselect.

С dpkg, вы должны экспортировать список выбранных пакетов, с:

команды dpkg --сделать-выбор * > выбор.txt

затем отредактируйте выбранные файлы.txt, измените строку, содержащую пакет, который вы хотите сохранить, например libc6, следующим образом:

libc6 установить

для этого:

libc6 удерживать

сохраните файл и загрузите его в базу данных dpkg с помощью:

dpkg --set-selections < selections.txt

С помощью aptitude, вы можете держать пакет с помощью

aptitude удерживать package_name

и снимите фиксатор с

aptitude показать package_name

в dselect, вы должны ввести [с]избрать в вы хотите сохранить в >его текущем состоянии, и нажмите =' key (orH'). Изменения вступят в силу немедленно >после выхода из экрана [S]elect.

Примечание: люди нашли проблемы с способности удерживать команда, поэтому imho вы должны предпочесть команду dpkg для хранения пакета. Кроме того, вы можете удерживать пакет через графический интерфейс Synaptic package manager (пакет > версия блокировки). Я предпочитаю использовать dpkg, потому что он работал хорошо для меня.

у вас уже есть хороший ответ, для остальных, поэтому я не рискну свое мнение о них.

3
отвечен nagul 2022-12-29 11:49

Если вы скачиваете исходники с официального сайта, то сам пакет должен быть доступен через apt. Таким образом, вы кошка просто скачать готовый пакет, изменить его и упаковать снова:

apt-get download your_package
dpkg -x your_package_vesion.deb your_package_folder/
... making changes in your_package_folder/ ...
# extract all needed controles/scripts from existing deb to new
dpkg -e your_package_vesion.deb your_package_folder/DEBIAN
dpkg -b your_package_folder/ new_package_vesion.deb

источник с подробностями: http://sysadm.pp.ua/linux/deb-creation-edit.html

1
отвечен jack 2022-12-29 14:06

Ну, все сводится к перекомпиляции. Если вам не нужна полная среда создания пакетов, одобренная debian (правильный путь), я, как правило, использую checkinstall для быстрого и грязного создания пакетов (простой способ) - это не рекомендуемый debian способ, но его намного проще, чем другой способ. настроить то сделать, и заменить makeinstall с checkinstall. Затем установите новый пакет с помощью sudo dpkg-i

0
отвечен Journeyman Geek 2022-12-29 16:23

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх