Мне нужно скомпилировать программное обеспечение на моей машине Fedora. Где лучшее место, чтобы положить его так, чтобы не мешать упакованному программному обеспечению?
Мне нужно скомпилировать программное обеспечение на моей машине Fedora. Где лучшее место, чтобы положить его так, чтобы не мешать упакованному программному обеспечению?
Ответы:
Практическое правило, по крайней мере, в системах с Debian:
/usr/local
для вещей, которые являются "общесистемными" - то есть, /usr/local
как правило, в дистрибутиве по умолчанию $PATH
, и следует стандартной иерархии каталогов UNIX с /usr/local/bin
, /usr/local/lib
и т.д.
/opt
для чего вы не доверяете , чтобы сделать в масштабах всей системы, с в приложение префиксов-то /opt/firefox-3.6.8
, /opt/mono-2.6.7
и так далее. Вещи здесь требуют более тщательного управления, но также с меньшей вероятностью сломают вашу систему - и их легче удалить, так как вы просто удаляете папку, и она исчезла.
/opt
если вы делаете sudo
установку.
Если вы действительно не хотите, чтобы это вообще мешало, не кладите это нигде $PATH
.
Если вы хотите, чтобы $PATH
, по крайней мере, убедитесь, что не установить в /usr/local
. Я обнаружил, что многие программы смотрят туда, даже если они установлены дистрибутивом /usr
.
Мой любимый способ установки специально скомпилированного программного обеспечения находится в моем $HOME
каталоге. Таким образом, вам не нужно sudo
ничего использовать , и он очень хорошо отделен от остальной части вашей системы. Например:
mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install
И если вы хотите, вы можете добавить /home/username/stage/bin
в свой $PATH
.
/usr/local
).
FHS говорит поместить его в / usr / local, где дистрибутивы не должны касаться его. /usr/local/bin
для двоичных файлов /usr/local/src
для исходного кода и /usr/local/lib
для библиотек. Смотрите спецификации FHS для получения дополнительной информации
/etc/mysql
для конфигурации?
/usr/local/etc
по умолчанию есть папка, я думаю, что я должен использовать это ... :-)
Большую часть времени я люблю размещать свои собственные скомпилированные материалы /opt
. Это своего рода псевдостандартное место. Вы также можете рассмотреть /usr/local
, но я предпочитаю держать свои вещи на 100% изолированными.
/opt
, однако я много раз видел, где много /usr/local
мусора, который исходит из дистрибутива
/usr/local
- это иерархии каталогов, параллельные иерархии в стандартном дереве, и, возможно, индексные файлы для таких вещей, как TeX.
Поместите их в /usr/local/src
.
Что я делаю, так это извлекаю исходный код из этого каталога. Это создаст путь как
/usr/local/src/postgresql-8.3.7
Затем я создаю символическую ссылку на него:
/usr/local/src # ln -s postgresql-8.3.7 postgresql
Сделайте все ваше здание в /usr/local/src/postgresql
.
Подобные действия помогают, когда вам нужно переключиться между версиями и документами, какую версию вы используете.
Это напоминает мне, мне нужно чаще использовать checkinstall ! Таким образом, я просто делаю как обычно
./configure
make
с последующим
sudo checkinstall
создать файл .deb ...
Если есть возможность - я бы предложил скомпилировать ваше программное обеспечение, а затем создать пакет FC (я полагаю, он использует yum для установки пакетов программного обеспечения). Затем вы можете установить этот пакет вашего собственного скомпилированного программного обеспечения и удалить его, не испортив всю систему.
Если вы хотите легко устанавливать и удалять несколько созданных вами приложений, вы можете использовать Stow в качестве простого менеджера пакетов.
Согласно FHS , /usr/local/
используется для приложений, скомпилированных из исходного кода, в то время /opt/
как используется для сторонних приложений, не поддерживаемых поставщиком операционной системы.
Две вещи, которые я бы рекомендовал:
Для всей системы: используйте stow и установите в / usr / local / stow / package-version. Тогда вы можете легко переключаться между версиями.
У меня дома или, если у меня нет разрешений на запись / usr / local, я лично устанавливаю программы в ~ / .local, на что намекает стандарт XDG .
Вы также можете использовать Stow локально, хотя я никогда не делал :)
У меня немного другие настройки, чем у большинства людей, потому что я много занимаюсь разработкой. У меня есть каталог / home / jackson / bin /, в который я устанавливаю материал, и я отредактировал свой .bashrc, добавив это:
export PATH=/home/jackson/bin/bin::$PATH
export LD_LIBRARY_PATH=/home/jackson/bin/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/home/jackson/bin/lib/pkgconfig:$PKG_CONFIG_PATH
Я бы так не делал, но это приятно во время разработки.
если вы компилируете приложение, вы можете добавить его путь к исполняемым файлам в переменную PATH env. это не повлияет на других пользователей.
Если вы хотите, чтобы ваше приложение было доступно для всех пользователей системы, и у вас есть необходимые разрешения, используйте / opt. Если вы хотите, чтобы приложение было доступно только вам (и пользователю root), используйте / home / username
Самый простой способ сделать это - взять пакет с исходным кодом ( .src.rpm
для RPMites), распаковать его, взломать новый источник / конфигурацию / что угодно в нем, изменить подходящую версию и собрать. Установка этого позволяет вашему менеджеру пакетов узнать о новом пакете, позволяет рассмотреть его на наличие зависимостей и удалить / обновить.
Это тяжелая работа в первый раз, но если выйдет новая версия (или какой-то критический патч), тогда будет проще ее обновить. Еще одним преимуществом является то, что вы можете создать свой собственный репозиторий с локальным программным обеспечением, которое будет использоваться, например, компьютерами в лаборатории.