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

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

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

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

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

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

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

Дополнительная информация

  • Я запускаю Ubuntu 9.04, 32bit, я не забочусь о других archs/versions в данный момент.
  • Рассматриваемый пакет является compiz-гномом.
  • Изменение очень незначительно и не добавляет зависимостей.
7
задан 18.08.2009, 16:37

4 ответа

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

Ре: как исправить источник deb

Кавычка: Первоначально Отправленный проводом

Я хочу в основном восстановить пакет администратора сети с пользовательским своего рода патчем для тестирования чего-то. Таким образом, я хочу: 1. получите исходный код для человечности "версия" администратора сети

Код:

sudo apt-get source network-manager

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

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

Выполните код:

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

Также найденный этой статьей: Debian Глава 6 Руководства Новых Специалистов по обслуживанию - Создание пакета


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

4
ответ дан 07.12.2019, 14:44
  • 1
    Один способ постараться не получать Ваш частный ударенный пакет состоит в том, чтобы добавить запись в вершину debian/changelog с числом старшей версии затем создайте свой пакет. – Chris Jester-Young 18.08.2009, 17:06
  • 2
    Патч будет во всей вероятности не быть принятым в восходящем направлении, так как это было доступно в течение достаточно долгого времени теперь. Создание моего собственного repo кажется излишеством для изменения с 20 строками. Возможно, я просто попытаюсь видеть то, что происходит. Спасибо за Ваш ответ. – Kim 18.08.2009, 17:08

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

От FAQ Debian:

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

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

Их значения:

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

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

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

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

  • держите - пользователь хочет, чтобы этот пакет не был обработан, т.е. он хочет сохранить> текущая версия с текущим статусом вообще, который является.

7.12 Как я приостанавливаю пакет?

Существует три способа сдержать пакеты, с dpkg, способностью или с dselect.

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

dpkg - получать-выборы *> selections.txt

Затем отредактируйте получающийся файл selections.txt, измените строку, содержащую пакет, который Вы хотите держать, например, libc6, от этого:

установка libc6

к этому:

libc6 содержат

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

dpkg - выборы набора <selections.txt

Со способностью можно держать использование пакета

способность содержит package_name

и удалите хранение с

способность не содержит package_name

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

Примечание: Люди нашли, что проблемы со способностью содержат команду, так по моему скромному мнению, необходимо предпочесть, чтобы команда dpkg содержала пакет. С другой стороны, Вы могли держать пакет через Синаптический графический интерфейс диспетчера пакетов (Пакет> Версия Блокировки). Мое предпочтение состоит в том, чтобы использовать dpkg, потому что это работало хорошо на меня.

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

3
ответ дан 07.12.2019, 14:44

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

Доберитесь источник (через Кв. - получают src).

Примените патч или сделайте любое изменение потребностей.

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

Выполненный debuild.

Наслаждайтесь своими deb файлами.

4
ответ дан 07.12.2019, 14:44

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

0
ответ дан 07.12.2019, 14:44

Теги

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