Время от времени нам может понадобиться установить что-то из источника по разным причинам. Хотя это довольно стандартная процедура установки программного обеспечения с учетом соответствующих зависимостей, мне не совсем понятно, как управлять такой установкой для дальнейшего удобства.
Более конкретно:
Что мы можем сделать, чтобы обеспечить легкое и чистое удаление (включая те зависимости, которые установлены непосредственно перед и только для программного обеспечения, установленного из источника)?
Что мы можем сделать, чтобы обеспечить простое и чистое обновление того же программного обеспечения, которое, вероятно, будет снова установлено из исходного кода?
Что мы можем сделать сделать, чтобы минимизировать потенциальный конфликт, если есть пакет по умолчанию (установленный с помощью apt-get), а также (более новая) версия пакета (установленная из исходного кода)?
Используя checkinstall make install
создаст временный пакет и установит его. Это означает, что зарегистрировано в диспетчере пакетов и может быть удалено.
AFAIK они должны быть зарегистрированы вручную. Можно создать файл как README для хранения списка вручную установленных зависимостей.
, Если то программное обеспечение уже имеет созданный двоичный файл в репозиториях PPA или Ubuntu. Отслеживание зависимостей, в то время как установка должна легче:
sudo apt-get build-dep target_package
Сохраняют , настроил & установленная исходная папка. Лучше, если Вы собираете все источники в определенной папке с файлом установленных зависимостей.
Устанавливают их в определенном --prefix
(предпочтительно --prefix=/opt/software_name-version/
).
Это решит много проблем: параллельные версии с той из репозитория; чистое обновление; легче для грязного удаления в случае, если источник был удален.
[еще 1113] усложнение или лучший способ, как @muru ответ, Сборка пакет Debian (Для пакетов, доступных в репозиториях Ubuntu/PPA)
В первую очередь, много зависит от того, как Вы управляете своими исходными кодами. Я делаю каталог как ~/sources
и вставляю каждую программу, это - подкаталоги, в то время как другие создадут новый каталог для каждой программы.
Так же некоторые любят меня, создают новый подподкаталог для каждой новой версии и удаляют более старые версии только, когда она обеспечена это нет никаких значительных ошибок в новой версии, которая остановила бы мою работу.
нет никакого единственного способа сделать это, но какой бы ни способ, которым Вы выбираете, , выбирает путь, который был бы самым легким для Вас справиться .
Чистое Удаление
я предложил бы создать rem_dep.sh
сценарий, который будет похож на это.
#! /bin/bash
sudo apt-get remove dep1 dep2 ... depn
, где dep1, dep2, depn
зависимости.
Чистый & простое обновление
, если Вы получаете исходный код от автоматизированной системы управления версиями как git
или bazaar
или если ссылки предсказуемы, можно создать сценарий оболочки, который будет
#1 make a backup of earlier version
#2 get new source
#3 configure, build/make the source
#5 if make went correctly, remove earlier version.
#6 make install new version, update dependencies if required.
В других случаях также, можно создать такие сценарии с физическим трудом в некоторой степени.
Управление конфликтами
--prefix
опция в то время как программные обеспечения установки и там зависимости. ПРИМЕЧАНИЕ: , Если Вы компилируете больше программного обеспечения, чем Вы, должен (установить
max_limit
для себя, как 5 или 10 или 100), лучше, чтобы Вы оставили Ubuntu и переместились для Выгибания Linux.
Лучшая вещь сделать состояла бы в том, чтобы сделать пакеты Debian более новых версий самостоятельно. dpkg
и эти apt
инструменты делают все три вещи, которые Вы упоминаете и предназначаетесь с этой целью. Используйте их вместо того, чтобы перестроить колесо. Существует много руководств по упаковке доступного. Если программное обеспечение уже существует в репозиториях, можно, вероятно, получить исходный пакет (apt-get src
), который можно использовать для исследования, и удар запускают собственный пакет.
Этот ответ на https://askubuntu.com/a/485230/158442 мог бы быть полезным как общее руководство.
, В то время как checkinstall
является большим для быстрого и грязного решения, длительный срок, необходимо использовать надлежащую упаковку.