Мне нравится, как вы можете управлять зависимостями с помощью требований pip. Есть ли что-то подобное в случае apt-get?
http://www.pip-installer.org/en/latest/requirements.html#requirements-file-format
Мне нравится, как вы можете управлять зависимостями с помощью требований pip. Есть ли что-то подобное в случае apt-get?
http://www.pip-installer.org/en/latest/requirements.html#requirements-file-format
Ваш вопрос в том, что вы хотите иметь список системных зависимостей в одном файле, чтобы можно было установить его одной командой.
Я не рекомендую включать версию пакета в системные зависимости. В программных зависимостях системы, таких как "build-essential" или "uuid-dev", вам обычно нужна последняя версия пакета. В «жестких зависимостях», таких как python, postgres и т. Д., Обычно версия указывается в имени самого пакета, например «python2.6-dev» или «postgresql-8.4 < / em> ". Другая проблема, с которой вы можете столкнуться при определении точной версии пакета, заключается в том, что, возможно, версия 8.4.11-1 из postgresql-8.4 не будет доступна в репозитории через три месяца или через год, и вы в конечном итоге установит текущую версию в репо.
Пример. Вы можете создать файл с именем "requirements.system" с системными пакетами, которые вам нужны для вашего проекта:
python-virtualenv
python2.6-dev
uuid-dev
python-pip
postgresql-8.4
Затем в файле INSTALL объясните, как устанавливать системные пакеты.
# Install system depencences by running
cat ~/project/install/requirements.system | xargs sudo aptitude install
Мы использовали эту конфигурацию около двух лет, нам приходилось воссоздавать среду с нуля несколько раз, и у нас никогда не было проблем.
package_name=version
(python-virtualenv=1.7.1.2-1
). Однако это может быть не так полезно, как с pip, потому что зеркала Debian не поддерживают столько старых версий пакетов, сколько репозиторий PyPI.
- person C2H5OH; 14.05.2012
xargs apt-get install <reqs.txt
- person arand; 04.08.2014
В работе мы используем формат aptfile. Это просто оболочка bash со встроенными помощниками.
aptitude install
?
- person Abhi; 09.01.2018
Обычно я создаю список установленных пакетов с apt list --installed | awk -F/ '{print $1}' | grep -v Listing... > installed_packages.txt
.
Объяснение:
apt list --installed
отображает список установленных пакетов, включая версииawk -F/ '{print $1}'
избавляется от версий пакета, это делает файл независимым от вашего дистрибутива (последующая совместимость между Mint, Ubuntu, стабильная версия / тестирование Debian, восходящая ветвь не обязательно)grep -v Listing...
избавляется от интерактивного отображения apt (первая строка)Затем вы можете установить в другой системе через cat installed_packages.txt | xargs apt install -y
, используя каждую строку указанного файла в качестве аргумента для apt.
Поскольку apt принимает ввод от стандартного ввода, самый простой способ сделать это:
$ cat requirement.txt
gcc
cmake
$ apt install < requirement.txt
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
apt install ""
, и ничего не устанавливает.
- person Daniele Procida; 29.11.2020