Как создать автономные пакеты из репозитория ubuntu

Я, к сожалению, воспользовался советами ответов здесь, которые либо неправильны, либо касательны.

После небольшого рытья я понял, что рассматриваемый модуль (proxy_fcgi) на самом деле является частью бионического apache2 -bin package

, поэтому все, что было необходимо, было:

a2enmod proxy_fcgi
1
задан 13 April 2017 в 15:23

6 ответов

Нет. Если вам нужен один пакет без зависимостей, вам нужно будет его переупаковать самостоятельно.

Чтобы понять, как работают пакеты, вы можете прочитать руководство по упаковке debian.

4
ответ дан 25 May 2018 в 14:05
  • 1
    Не могли бы вы объяснить, почему это невозможно :) и включите, как вручную сделать это, ссылки на учебник достаточно :) – Tachyons 25 February 2012 в 18:22
  • 2
    Это невозможно, потому что dpkg не поддерживает формат пакета, который содержит несколько пакетов. Лучшее, что вы можете сделать, это сделать свой собственный пакет, который имеет свои внешние зависимости. В зависимости от пакета это может быть невозможно вообще, но если все его зависимости зависят от простой библиотеки, тогда вы можете изменить правила сборки для связывания статически. – psusi 26 February 2012 в 02:02

Если все эти вещи уже находятся в архиве Ubuntu, то все, что вам действительно нужно, это мета-пакет, который вызывает их установку, правильно?

Вам просто нужно создать почти пустой пакет с dh_make , Скажите, что вам нужен один двоичный файл и собственный пакет. В пустом каталоге:

dh_make --native --indep --packagename --defaultless your-thing

Затем отредактируйте debian / control и в разделе двоичного пакета (второй). Добавьте все пакеты, которые вы хотите установить, в раздел Depends:, разделенные запятыми. [ ! d2]

Затем создайте пакет с помощью

debuild binary

Если вы хотите загрузить его в PPA на Launchpad, чтобы другие могли легко получить его:

dch --release --distribution oneiric
debuild -S

] Конечно, измените oneiric на все, что вы хотите упаковать. Затем в каталоге выше вы должны иметь

your-thing_1.0_source.changes

После того, как вы создали PPA, просто сделайте

dput ppa:yourusername/ppaname your-thin_1.0_source.changes

. И тогда любой, кто установит этот пакет, также загрузит и установит все из других бит зависит от

3
ответ дан 25 May 2018 в 14:05
  • 1
    Я имею в виду отдельный пакет deb, такой как google chrome, teamviewer и т. Д. мета-пакет отличается – Tachyons 28 February 2012 в 06:09
  • 2
    Понял. Полагаю, я просто думаю, что это плохая идея. В тот момент, когда обновляется один из компонентов, ваш автономный пакет устарел. Я бы предпочел увидеть мета-пакет, который развивается по мере того, как обновления безопасности и исправления помещаются в релиз. – SpamapS 1 March 2012 в 04:02
  • 3
    Может быть, но я хочу установить программное обеспечение, как в случае с окнами (просто двойным щелчком) это не хорошо для тех, у кого есть хорошее подключение к Интернету, но для автономного пользователя сложно установить инструменты и установить с помощью кеширования для обычных пользователей – Tachyons 1 March 2012 в 04:29

Если бы у меня возникла проблема с этим, я бы сделал следующее:

Загрузите и извлеките все пакеты Сохраните копию основного пакета папки DEBIAN, поместите остальные в один side Измените файл DEBIAN/control, поэтому перечислите каждый пакет, который вы предоставляете в строке Provides. Добавьте записи Conflicts для заменяемых вами пакетов. Удалите зависимости из строки Dependencies. Измените postinst и preinst. ], prerm и postrm, чтобы ваша новая копия обрабатывала вещи для всех пакетов. Это не просто, потому что вам нужно понять, что каждый пакет делает на каждом шаге. Повторно упакуйте все это снова, так что у вас есть все файлы и новые файлы DEBIAN.

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

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

3
ответ дан 25 May 2018 в 14:05

Конечно, это возможно, но я не знаю никаких инструментов, которые сделают это для вас. Итак, ручная переупаковка - это путь.

1
ответ дан 25 May 2018 в 14:05

Отказ от ответственности: я не пробовал это, это всего лишь мой эскиз решения.

Возможно, вы можете загрузить все зависимости в каталог, внести его в репозиторий debian, создать ISO-образ репозитория, а затем распространить ISO.

Затем вы могли бы установить ISO как loopback-устройство и дать указание использовать смонтированный каталог как источник пакетов - так же, как вы можете использовать установочный диск Ubuntu в качестве репозитория.

Похоже, что это ужасная работа, но вы получите один распространяемый файл, содержащий все зависимости, не требуя переупаковки файлов deb.

1
ответ дан 25 May 2018 в 14:05
  • 1
    это может быть сделано aptoncd, но мне нужен один пакет deb oonly Предположим, я хочу установить вино из одного файла deb, возможно ли это? – Tachyons 25 February 2012 в 17:14

, если у них нет «хорошей» возможности подключения, но все же некоторые из них, вы можете поделиться файлом / var / cache / apt / archive, который будет использоваться вместо повторной загрузки файла.

Этот метод не решает проблему синхронизации индекса репозитория.

0
ответ дан 25 May 2018 в 14:05
  • 1
    Я знаком с этим методом, но мой вопрос отличается. Извините за мой плохой английский :( – Tachyons 21 February 2012 в 19:23

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

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