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