Мені потрібно зібрати деяке програмне забезпечення на моїй машині 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. це не вплине на інших користувачів.
Якщо ви хочете, щоб ваша програма була доступною для всіх користувачів в системі, і у вас є необхідні дозволи, скористайтеся / виберіть. Якщо ви хочете, щоб програма була доступна лише для вас (та root), використовуйте / home / username
Найпростіший спосіб зробити це - захопити вихідний пакет ( .src.rpm
для RPMites), розпакувати його, зламати нове джерело / конфігурацію / що завгодно, змінити версію та скласти її. Якщо встановити це, ваш менеджер пакунків знає про новий пакет, дозволяє врахувати його для залежностей та видалити / оновити.
Це справа вперше, але якщо вийде нова версія (або якийсь критичний патч), оновити її простіше. Ще одна перевага полягає в тому, що ви можете створити власний сховище з місцевим програмним забезпеченням, яке має бути спільним, наприклад, машинами в лабораторії.