Yazılım kaynak dosyalarını tutmak için standart konum


16

Linux'ta kaynak dosyaları tutmak için standart bir konum var mı, örneğin OpenSSL . NSSS'yi varsayılan olmayan OpenSSL sürümü ile kaynaktan oluşturuyorum. OpenSSL'i indirip açmam gerekiyor ve bunu ana dizinde yaptım. Şimdi, merak ediyorum Linux'ta standart bir yer var /optmı?


1
Terdon'un yazdığı gibi / usr / src standart konumdur ve burada çekirdek kaynağı (/ usr / src / linux / usr / src / linux sürümüne bağlı) ve örneğin X11 için dizinler bulabilirsiniz. Yerel olarak kurulan paketler için kaynak kodu (/ usr / local) / usr / local / src dizinine daha iyi uyar. Paketleri kendiniz "manuel olarak" oluşturmak istiyorsanız, homedir'inizde src dizini oluşturmak muhtemelen iyi bir fikirdir ... Unutmayın, paketten çıkarmayın veya root olarak kurmamalısınız! Deb / rpm paketleri oluşturursanız, bunun yerine genellikle geçici derleme dizinleri (örn. / Var / tmp) kullanılır. TBC
Baard Kopperud

Bir paket oluşturup yüklerseniz veya bir paket (rpm / dem) oluşturursanız, genellikle yüklendikten sonra artık kaynak koduna ihtiyacınız olmaz. / Usr / src (veya yerel olarak oluşturulmuşsa / usr / local / src) altında çekirdek veya X11 gibi bazı paketler için kaynak koduna sahip olmanızın nedeni, çoğunlukla bazı yazılım paketlerini kendiniz oluşturmak (veya yazmak) (örneğin, gerçek sistem kurulumunuzla eşleşen, çekirdekten bazı belirsiz başlık dosyaları). (Tabii ki, kendi çekirdeğinizi de oluşturmak istiyorsanız buna ihtiyacınız olacak ...) Ama bu birkaç paket için geçerlidir.
Baard Kopperud

Yanıtlar:


21

Kendinize böyle bir şey sorduğunuzda, Dosya Sistemi Hiyerarşi Standardı'na (FHS) göz atın. Burada, aşağıdaki girişi bulacaksınız:

usr / src: Kaynak kodu (isteğe bağlı)

amaç

Kaynak kodu bu referansa sadece referans amaçlı yerleştirilebilir

Böylece kaynak dosyalarınızı /usr/src. Bununla birlikte, bu isteğe bağlı bir dizindir, böylece onları istediğiniz yerde tutabilirsiniz. Bir çalıştırılabilir dosyaya derledikten sonra kaynak kodu ilgili değildir, bu nedenle sistem hiçbir zaman belirli bir konumda kaynağa erişilmesini gerektirmez.

Sonuç olarak: /usr/srcoldukça standart bir konumdur, ancak isterseniz kendi seçmek için çekinmeyin.


6
Sadece unutmayın gerçekten karıştırmasını olmak istemiyoruz /usr/srcbir üzerinde olmayan -Linux sisteme. BSD'ler temel sistem kaynaklarını varsayılan olarak orada tutar ve bunları üçüncü taraf yazılımlarla karıştırmak istemezsiniz. Sadece bir $HOMEyere inşa et ...
Kusalananda

1
Aynı bazı alt dizinlere uygulanır /usr/srcbelirli paketler yüklü ise, Debian türevleri üzerinde ( gcc-6-source, binutils-source, paketler DKMS, çekirdek başlıkları vs.). Debian'da, srcsahibi olan gruba kendinizi ekleyebileceğiniz /usr/srcve daha sonra sadece kendiniz olarak (ihtiyaç duymadan sudoveya herhangi bir şekilde) yazabileceğiniz güzel bir özellik var .
Stephen Kitt

Ve Fedora'da /usr/src/debugve /usr/src/kernels(AFAICS) 'e dokunmamalısınız .
Stephen Kitt

Msgstr "Kaynak kodu yerleştirilebilir". "Yer" bir yazım hatası mı, yoksa bir şey mi kaçırıyorum?
Faheem Mitha

3
Daha ileri gideceğim ve /usrherhangi bir sisteme gerçekten dokunmamanız gerektiğini söyleyeceğim . Bir şeyler koymalısın /usr/local. BSD'ler kullandığınızı düşünüyor /usr/local/srcmu?
Muzer

13

/usr/local/srckaynak kodunu korumak ve oluşturmak için güvenli bir yerdir. FHS diyor ki :

Directory   Description  
src         Local source code

ve ayrıca

/ Usr / local hiyerarşisi, yazılımı yerel olarak yüklerken sistem yöneticisi tarafından kullanılmak içindir. Sistem yazılımı güncellendiğinde üzerine yazılmaması güvenli olmalıdır.

"Yerel kaynak kodu" nun ne anlama geldiği açık değildir, ancak sistemin /usr/local/srcaksine hiçbir şey yerleştirmeye çalışmayacağı açıktır /usr/src, bu nedenle kodu buraya koymanın küçük bir dezavantajı vardır.

Aslında, ayrı bir dosya sisteminde benim var:

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

Not: en azından Debian'da, staffyazı yazmak için kullanıcınızın gruba eklenmesi gerekir /usr/local.


/usr/local/srcDiğer cevaplar sadece tartışırken işaret ettiği için +1/usr/src
MattSturgeon

"Yerel kaynak kodu" ne anlama gelirse, genel olarak dağıtım yerine yerel sistem yöneticisi tarafından kontrol edilir . (Teoride) altındaki her şeyle aynı . Yani aslında tam olarak sizin tanımladığınız anlamına gelir. /usr/local
MattSturgeon

9

"Standart" ile geleneksel kastediyorsanız, kaynak kodunu açıp oluşturacağınız yer ana dizininizdir. Bu tür dosyaların geçici olması, işiniz bittiğinde silinmesi ya da isterseniz saklanması beklenir. Ana dizininiz tüm bu tür şeylerle oynayabileceğiniz alandır.

Eğer, daha sonra onları tutmak isteyen yoksa başvuru için , " Dosya Sistemi Hiyerarşi Standardı " önerir /usr/src. Ancak, bu bir kanun değil bir rehberdir; ve eğer bu alışkanlığa girecek olsaydınız, Linux olmayan bir sisteme girecek olursanız, onu takip ederek soruna neden olabilirsiniz. Örneğin, bir BSD sisteminde, temel sistem kaynakları orada tutulur ve gerçekten bunlarla uğraşmak istemezsiniz. Linux'ta bile, paket yöneticileri tarafından depolanan ve istenmeyen herhangi bir kaynakla karışma riskiyle karşılaşabilirsiniz.

/usr/srcGenel kaçınarak tavsiye ederim . Herhangi bir şeyi orada tutmanın açık bir yararı ve amaçlanan anlamını karıştırırsanız potansiyel risk yoktur.


5

Sen kullanabilirsiniz /usr/srcmakul ve rpm tabanlı dağılımlar SRPM paketleri orada içeriği depolamak için kullanabilirsiniz burası ses olarak. Ama başka bir yerde gibi /opt, /usr/local, ~/srciyidir


"rpm tabanlı dağıtımlar bunu srpm paketlerinin içeriğini depolamak için kullanır." Tam da bu yüzden kendi distro olmayan kaynaklarınızı orada saklamamalı ve / usr / local kullanmamalısınız. - "
Eşya
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.