Назад | Перейти на главную страницу

восстановление пакетов и диспетчера пакетов на debian

Это то, что меня беспокоило некоторое время, я не мог найти никаких хороших ответов в Google, надеюсь, у кого-то здесь есть твердый ответ.

Речь идет о том, как восстанавливать пакеты debian и как их поддерживать.

Во-первых, как мне установить NGiNX с включенными нестандартными модулями. Я предполагаю, что это так же просто, как загрузить исходный код пакета, отредактировать что-то, перестроить его и установить. Но как это сделать, шаг за шагом.

Во-вторых, как только у вас будет установлен перестроенный пакет, что, если будет выпущена более новая версия NGiNX, и вы захотите обновить ее, выполнив простую команду «apt-get upgrade». Сработает ли он, или вам придется повторно загрузить и пересобрать пакет? Кроме того, если это не так, как заставить его работать так?

Кто-нибудь дайте, пожалуйста, внятный ответ. Огромное спасибо!

Джоэл упоминает несколько хороших альтернатив сборке пакета Debian, которые вам следует серьезно рассмотреть, поскольку они, скорее всего, больше подходят. Однако, чтобы напрямую ответить на ваш вопрос, есть несколько способов сделать это.

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

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

  1. Установите build-essential package, в котором есть инструменты, необходимые для сборки пакетов Debian.

  2. Загрузите исходный код пакета, запустив apt-get source nginx, или любое подходящее имя пакета. Это загрузит и распакует исходный пакет, включая все исправления, в формате, готовом к перепаковке. Возможно, вам потребуется добавить или раскомментировать deb-src линии конфигурации в /etc/apt/sources.list для соответствующего раздела репозитория.

  3. Установите соответствующие зависимости сборки с помощью apt-get build-dep nginx.

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

  5. Соберите пакет с dpkg-buildpackage -b. В -b флаг говорит dpkg что вы не хотите регенерировать исходный пакет.

  6. Установите свой пакет.

An более простой подход использовать checkinstall программа, которая генерирует пакет Debian путем выполнения команды установки и создания пакета, воспроизводящего изменения, внесенные этой командой. Это работает для многих программных пакетов и довольно просто:

  1. Загрузите исходный код и внесите необходимые изменения.

  2. Постройте проект как обычно (make, например, но не make install).

  3. Бегать sudo checkinstall -D make install. При необходимости вы можете изменить его для другой команды установки (python setup.py install для проектов Python, например).

  4. Следуйте интерактивным подсказкам, чтобы собрать пакет. Знание соглашений об упаковке Debian полезно для создания полезного пакета; вам придется, например, скопировать зависимости из существующего пакета.

Последний подход - использовать Инопланетянин для преобразования существующего пакета (RPM, Slackware tgz и т. д.) в .deb пакет. Я сам не использовал этот подход, и для него требуется существующий пакет, который соответствует вашим потребностям с точки зрения конфигураций времени компиляции.

Все эти параметры должны работать для Debian или Ubuntu, но я пробовал их только на Ubuntu.

В частности, с Nginx вы передадите определенные параметры скрипта конфигурации, как указано Вот.

Новая версия Nginx означает, что вам придется каждый раз загружать исходный код, перестраивать и устанавливать его снова. После сборки из исходного кода ваш менеджер пакетов не имеет ничего общего с этим пакетом. Однако для вас это почти не проблема, потому что Debian движется со скоростью эрозии. Совершенно новый выпуск исходного кода сегодня не появится в репозиториях Debian раньше, чем через полгода.

Да, весь этот бизнес по строительству из источников - это баня червей. Это означает, что хорошие сценарии запуска, которые включает Debian, не будут применяться к вашей настраиваемой сборке Nginx, и потребуется небольшая реконструкция, чтобы заставить его работать правильно.

Вам нужен самый последний Nginx со специальными параметрами времени компиляции, или вы можете согласиться на версию из Dotdeb?

Если вы абсолютно, категорически настаиваете на создании собственного Nginx, по крайней мере превратите его в пакет Debian, чтобы вы могли повторно использовать свою собственную сборку. Вот некоторые инструкции. Есть группа людей, которые лучше упаковывают программное обеспечение для Debian. Используйте их пакеты. Не создавайте свои собственные.

ОБНОВЛЕНИЕ: прочтите это журнал изменений для Nginx 1.2.3. Они ссылаются на это электронная таблица где это означает, что пакет nginx-extras предлагает поддержку модуля MP4.