Стандартне місце для зберігання вихідних файлів програмного забезпечення


16

Чи є в Linux стандартне місце для зберігання вихідних файлів, наприклад, OpenSSL . Я будую Nginx з джерела з не за замовчуванням версією OpenSSL. Мені потрібно завантажити та зняти OpenSSL, і я це зробив у домашній каталог. Тепер мені цікаво, чи є стандартне місце в Linux, можливо /opt?


1
Як terdon wrote / usr / src є стандартним розташуванням, і тут ви можете знайти каталоги для джерела ядра (/ usr / src / linux, пов'язані з / usr / src / linux-версія) і, наприклад, X11. Вихідний код для встановлених локально пакетів (/ usr / local) краще вписується в / usr / local / src. Якщо ви хочете створити пакунки "вручну" самостійно, створити src-каталог у своєму homedir - це, мабуть, хороша ідея ... Пам'ятайте, що ви не повинні завантажувати, розпаковувати або будувати як root - встановлюйте лише як! Якщо ви створюєте пакунки deb / rpm, замість цього типово використовуються тимчасові каталоги (наприклад, під / var / tmp). TBC
Баард Копперуд

Якщо ви збираєте і встановлюєте пакет - або створюєте пакунок (rpm / dem) - самостійно, вам зазвичай не потрібен вихідний код після його встановлення. Причина, чому у вас може бути вихідний код для деяких пакетів - наприклад, ядра або X11 - під / usr / src (або / usr / local / src, якщо він був створений локально), здебільшого тому, що вони вам можуть знадобитися, якщо ви ' переробляйте (або пишете) якийсь пакет програмного забезпечення самостійно (наприклад, деякі незрозумілі файли заголовка з ядра, що відповідають вашому фактичному налаштуванню системи). (Звичайно, він вам знадобиться, якщо ви теж хочете створити власне ядро ​​...) Але це стосується кількох пакетів.
Баард Копперуд

Відповіді:


20

Щоразу, коли ви запитаєте себе щось подібне, перегляньте стандарт ієрархії файлової системи (FHS). Тут ви знайдете такий запис:

usr / src: вихідний код (необов'язково)

Призначення

Вихідний код може бути розміщений у цьому підкаталозі лише для довідкових цілей

Таким чином, ви можете помістити вихідні файли у підкаталоги /usr/src. Однак, це необов'язковий каталог, щоб ви могли дійсно зберігати їх де завгодно. Вихідний код не є актуальним після того, як ви склали його у виконуваний файл, тому система ніколи не вимагатиме, щоб джерело чогось було доступним у певному місці.

На закінчення: /usr/srcце досить стандартне місце, але сміливо вибирайте власне, якщо хочете.


6
Просто знайте , що ви на самому справі не хочу бути балуватися з /usr/srcна , НЕ -Linux системи. BSD зберігають там базові джерела системи за замовчуванням, і ви не хочете змішувати їх із стороннім програмним забезпеченням. Просто $HOME
будуй

1
Те ж саме відноситься і до деяких підкаталогам /usr/srcна похідних Debian, якщо встановлені певні пакети ( gcc-6-source, binutils-source, DKMS пакетів, ядро заголовки і т.д.). У Debian є приємна функція, де ви можете додати себе до srcгрупи, яка є власником /usr/src, а потім просто записатись там як самостійно (без потреби sudoчи іншого).
Стівен Кітт

А у Fedora не слід чіпати /usr/src/debugі /usr/src/kernels(AFAICS).
Стівен Кітт

"Може бути розміщений вихідний код". Чи друкується "місце розміщеного", чи я щось пропускаю?
Faheem Mitha

3
Я піду далі і скажу, що ви насправді не повинні торкатися /usrжодної системи. Ви повинні вкладати речі /usr/local. Чи проти BSD ви користуєтесь /usr/local/src?
Мюзер

13

/usr/local/srcце безпечне місце для збереження вихідного коду та його створення. FHS говорить :

Directory   Description  
src         Local source code

і також

/ Usr / local ієрархія використовується для системного адміністратора при локальній установці програмного забезпечення. Це повинно бути захищено від перезапису при оновленні системного програмного забезпечення.

Незрозуміло, що означає "Локальний вихідний код", але зрозуміло, що система не намагатиметься нічого розміщувати /usr/local/src, на відміну від цього /usr/src, тому, здається, є невеликий недолік розміщення коду там.

Насправді я маю свою окрему файлову систему:

Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/data-local_src     79G   46G   30G  61% /usr/local/src

Примітка: принаймні, на Debian, вашого користувача потрібно додати до staffгрупи, щоб записатись /usr/local.


+1 для вказівки, /usr/local/srcа інші відповіді лише обговорюють/usr/src
MattSturgeon

Що стосується того, що означає "локальний вихідний код", він загалом означає, що він контролюється локальним sysadmin, а не дистрибутивом . Те саме, що і все інше /usr/local(теоретично). Тож по суті це означає саме те, що ви описали.
MattSturgeon

9

Якщо під "стандартним" ви маєте на увазі звичайне, то місце розпакування та створення вихідного коду - ваш домашній каталог. Очікується, що такі файли будуть тимчасовими, видаляються, коли ви закінчите, або зберігаєтесь, якщо хочете, впорядковані, як завгодно. Ваш домашній каталог - це ваша область, щоб грати з усіма подібними речами.

Якщо ви хочете зберегти їх в подальшому, для довідки , то « Filesystem Hierarchy Standard » рекомендує /usr/src. Однак це посібник, а не закон; і, якщо вам вдалося ввійти в цю звичку, а потім зайнятися системою, яка не є Linux, ви можете створити проблеми, дотримуючись її. Наприклад, у системі BSD джерела базової системи зберігаються там, і ви дійсно не хочете возитися з ними. Навіть в Linux ви можете ризикувати змішанням будь-якого джерела, що зберігається менеджерами пакетів, що не бажано.

Я б рекомендував уникати /usr/srcвзагалі. Немає явної користі від того, щоб зберігати щось там взагалі, і потенційний ризик, якщо ви сплутаєте його передбачуване значення.


5

Ви можете використовувати /usr/srcдля цього місцезвучні обгрунтовані дистрибутиви, а дистрибутивні на основі оборотів використовують його для зберігання вмісту пакетів srpm. Але будь-яке інше місце, як /opt, наприклад /usr/local, ~/srcдобре


"дистрибутиви на основі rpm використовують його для зберігання вмісту пакетів srpm." Саме тому ви не повинні зберігати там свої власні джерела без дистрибуції, а скоріше використовувати / usr / local. - "Це, мабуть, є гарним місцем для зберігання речей, з усіма цими навантажувачами, що здаються, однакової думки ...."
rackandboneman
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.