Где я должен хранить исходные файлы для установки?

10

Раньше я загружал все в / tmp, потому что после этого make; sudo make installмне эти файлы больше не нужны.

Но теперь я понял, что единственный способ удалить программы, установленные из исходного кода, это использовать make uninstall(когда доступно). Поэтому я, вероятно, должен сохранить свои загрузки на случай, если они понадобятся мне позже.

Так где же их хранить? Есть ли место для этого в Linux?

ChocoDeveloper
источник
Избегайте проблем: устанавливайте из пакетов, когда это возможно.
Майкл Хэмптон
@MichaelHampton Иногда это не вариант (я думаю), например: nginx требует установки исходного кода, если вы хотите добавить сторонние модули.
ChocoDeveloper

Ответы:

16

Местоположение, определенное стандартом иерархии файловой системы для хранения исходного кода, является /usr/src. Я полагаю, вы могли бы также использовать /usr/local/src, поскольку это немного более точно описывает, откуда появилось программное обеспечение (то есть вы создали его, дистрибутив - нет).

Обратите внимание, однако, что FHS фактически упоминает, что исходный код не должен быть собран из этого каталога, вероятно потому, что вы не должны компилировать вещи как root, поэтому я предполагаю, что вы переместили бы дерево исходных текстов после установки. На практике, однако, я не беспокоюсь; Я храню все, что я встраиваю ~/Code, что находится на просторном разделе. По сути, не существует широко принятого соглашения; Вы просто делаете то, что работает для вас.

Вам также следует взглянуть на checkinstall , отличную небольшую часть программного обеспечения, которая создает элементарный пакет из команды. (Вероятно, это будет в репозитории вашего дистрибутива.) По сути, вместо запуска

sudo make install

вы бы запустить что-то вроде

sudo checkinstall make install

который опрашивает вас о пакете, который вы делаете, наблюдает за make installустановкой всего, затем создает пакет, который затем может быть чисто установлен и удален с помощью менеджера пакетов. Я считаю, что checkinstall может создавать пакеты для систем на основе dpkg (Ubuntu, Debian и т. Д.), Систем на основе RPM (Fedora, RHEL и т. Д.) И систем на основе Slackware. Если вы используете Arch, не беспокойтесь о checkinstall; вместо этого рассмотрите возможность использования PKGBUILD.

Надеюсь, это поможет!

thirtythreeforty
источник
+1 за упоминание пакетов. Который я думаю, является ответом, который был необходим (но не спросил).
Hennes
Спасибо! Я использую checkinstall сейчас, выглядит отлично. Последний вопрос: мне не нужно хранить .deb, верно? dpkg будет знать, как удалить его, даже если он ушел
ChocoDeveloper
Это правильно. Все менеджеры пакетов хранят список файлов, установленных пакетом, поэтому вы можете удалить собранный пакет после его установки.
тридцать три
5

Там не указано место для исходных файлов; у каждого свои привычки.

Однако рассмотрим эти три варианта:

  1. В корнях homedir (работает, но включен / обычно невелик).
  2. / usr / local / src / (или вообще что-нибудь в / usr / local /
  3. Установите через пакет и используйте менеджер пакетов для удаления.

Для длительного обслуживания я действительно рекомендую вариант 3. Даже если вам придется собирать пакеты самостоятельно (из исходного кода). В этом случае вы получаете: untar / configure / make / make пакет через некоторый синтаксис в зависимости от вашего выбора пакета / пакета установки

Hennes
источник