Linux'ta hangi dizine programlar kurmalıyım?


43

Linux'ta bir program kurmak ve bir daemon olarak çalıştırmak istiyorum. (Bu durumda Team 3 Konuş, ama soru doğada genel). Sağlanan bir paket yok, sadece tarced ikili dosyalar var. Dizin yapısında kongre ile böyle bir programı nereye koymalıyım?

Web'de / opt 'in "isteğe bağlı addon uygulamaları", / usr ise "kullanıcı programları" için olduğunu buldum. Birini önerdi / opt, diğeri önerdi / usr.

Peki hangisi "daha doğru"?


1
"Daha doğru" dağıtımınıza bağlıdır. Dağıtım yöneticinizin, paket yöneticisi tarafından yönetilmeyen bir yazılımı (genellikle /usr/local) nereye koyacağınıza ya da kendi paketinizi nasıl oluşturacağınıza ilişkin yönergelerini kontrol etmelisiniz .
Leiaz,

Teşekkürler Leiaz. Yorumunuz cevabı bulmama yardımcı oldu ( askubuntu.com/questions/1148/… ). Bu yüzden benim durumumda (tercih edilmeli) (Ubuntu'ya dayanan Linux Mint kullanma) ve uygulama tek bir klasör kullanıyor olmalı. Yorumunuzu bir cevaba dönüştürürseniz, kabul edeceğim.
Eiver

Yanıtlar:


27

"Daha doğru" dağıtımınıza bağlıdır. Dağıtım yöneticinizin, paket yöneticisi tarafından yönetilmeyen bir yazılımı (genellikle /usr/local) nereye koyacağınıza ya da kendi paketinizi nasıl oluşturacağınıza ilişkin yönergelerini kontrol etmelisiniz .

TeamSpeak’in dediği gibi her şeyi bir klasöre yerleştirin (ve yeniden düzenlemek kolay olmayabilir), evet /opt/, muhtemelen en iyisidir.

(Örneğin, örneğin, Archlinux’ta paket yöneticisi oraya yükleyebilir, bu yüzden hala kurması için bir PKGBUILD hazırlarım /opt.)

Ayrıca dağıtımlar genellikle Dosya Sistemi Hiyerarşisi Standardını izlemeye çalışır , bu yüzden daha genel bir kongre arayacağınız yer burasıdır.


kullanımda her bir dizinin nerede olduğunu bilmek için bir takma ad var mı? (örneğin, kök yapılandırmaları nereye koyacağınız, ikili kodları, bağımlılıkları, şablonları nereye koyacağınız ...)
Sandburg

5

Kendi yazılımınızı derleyecekseniz, nihayetinde kurulum yerini kontrol edersiniz. Kurallara göre, yazılım manuel olarak derlenir ve kurulur (bir paket yöneticisi aracılığıyla değil, örneğin apt, yum, pacman) /usr/local. Bazı paketler (programlar) /usr/localgibi ilgili tüm dosyalarını depolamak için içinde bir alt dizin oluşturacaktır /usr/local/openssl. Diğer paketler gibi mevcut dizinleri içine kendi gerekli dosyaları yükler /usr/local/sbinve /usr/local/etc. Bunlar sadece varsayılan konumlardır ve derleme sırasında değiştirilebilir.

Yazılımı derlerken, --prefix=çalıştırma seçeneği kullanılarak yükleme konumu belirlenebilir ./configure. Paketiniz için mevcut tüm seçeneklere çalışarak bakmanız önemle tavsiye edilir $ ./configure --help | less. Ek olarak, paketinizle birlikte verilen INSTALL ve README belgelerine göz atmak iyi bir fikirdir. Pakete özgü kurulum talimatlarını ve bağımlılık bilgilerini içerme eğilimindedirler.

FHS'ye göre, herhangi bir yerde yazılımı saklayabilmenize rağmen , yerel olarak kurulmuş yazılım için kaynak kodunun, /usr/local/src standart bir şekilde depolanmalıdır , kaynak ağaçlarınızı sakladığınız yerde bir ağacı kopyalamanız gerekiyorsa bir ağacı kolayca bulmanıza izin verir. yapılandırma dosyası veya ikili. Bazı paketler kullanmak olsa da, kaynak kod saklanan edilmemelidir /usr/srcböyle çekirdeği gibi sistem yazılımın belirtilmiş olduğu gibi.

Son olarak, kurulum yerinizin içinde bulunduğundan emin olmanız gerekir $PATH. Paketinizi kurmaya karar verirseniz /optancak $PATHkabuğunuzda değilse, çalıştırılabilir dosyaları bulamazsınız ve programlarınızı çağırmak için mutlak yolu kullanmanız gerekir. İşte gelen bazı büyük tartışmalar vardır AU yapılandırma hakkında senin$PATH

Ek okuma: man hier


5

Linux Standard Base ve Dosya Sistemi Hiyerarşi Standart tartışmalı bir Linux sisteminde yazılım yüklemek gerekir nerede ve nasıl standartları ve ya da dağıtım dahil değildir yerleştirerek yazılımını öneririm /optveya /usr/local/daha doğrusu alt dizinleri burada ( /opt/<package> /opt/<provider> /usr/local/bin).

En iyi uygulama, indirdiğiniz yazılımı, dağıtımınıza özgü yüklenebilir bir yazılım paketine (örneğin, dpkg veya rpm formatları) dönüştürmektir. Bu, yazılımı raporlamayı, güncellemeyi ve temiz bir şekilde kaldırmayı kolaylaştıracaktır.


Bu hemen hemen soruyu yanıtlamak yerine soruyu yeniden ifade ediyor. OP, mevcut iki seçeneğin farkındaydı /optve /usr/local/bunlardı ancak bu seçeneklerden hangisinin kullanılacağı hakkında özel bilgiler istedi . Bu , iki konumun birbiriyle değiştirilebilir olduğu iddiasında bulunursa ( bu durumda doğru bir cevap olduğu konusunda itiraz edersem de) geçerli bir cevap olabilir .
JBentley

1

İkili bindosyalar ortak sözleşmelerle klasöre giriyor , paket yapınızı nasıl düzenleyeceğiniz size bağlı /opt/<prog_name>/, sadece bir ikili liste olup olmadığını düşünebilirim .


Team Speak 3'ün, programı ihtiyacı olan her şeyin tek bir klasörde (ikili dosyalar, yapılandırma dosyaları, günlükler) yer alacak şekilde yapmasından korkuyorum, bu yüzden / bin veya / etc veya / var / log kullanmıyor
Eiver

1

Eclipse'i Eclipse yükleyicisi aracılığıyla yüklerken de aynı soruyu sordum.

Gimp, Perl ve Vim'in /usr/shareklasöre kurulduğunu ve oraya kurmaya karar verdiğini fark ettim .


0

Programların nasıl paketlendiğine bağlı olarak yüklenebilecek iki yolu vardır.

  1. Yazılım yöneticisi (apt, synaptic, Gdebi vb.) Aracılığıyla - program genellikle .deb veya rpm paket şeklindedir. Yazılım yöneticileri çoğu durumda bağımlılıkları yönetir ve genellikle ikili dosyaları kurar /usr/bin, config dosyalarını /etcvb. Yükler . Genellikle evinizdeki program için bir yapılandırma dosyası da oluşturabilirler ~/.foo. Bu dosyayı düzenleyebilirseniz, oturumunuz için ayarları bu şekilde kolayca değiştirebilirsiniz. Paketi kaldırdığınızda, yönetici tüm dosyaları bulur ve bunları temiz bir şekilde kaldırır (tüm konumları özel bir metin dosyasında saklar). Ancak, örneğin ev klasörünüzdeki dosyalardan bazı yapılandırma dosyalarını koruyabilir.

  2. Bir programı (genellikle sıkıştırılmış) mimariniz için önceden derlenmiş bir ikili dosya biçiminde yüklersiniz. Programın yürütülebilir dosya diğer dosyalar (dinamik kütüphaneler vb bağlantılı) bir sonraki, Bütün bu klasör kök ayrıcalıklarıyla, kopyalanabilir tek bir klasörde genellikle ya etmektir /optya /usr/binve izinleri izin veriyorsa, herhangi bir kullanıcı tarafından kullanılabilir. İkili dosyalar içeren klasörleri ana klasörüme koydum ~/bin. Şimdi programı bin dosyasını çağırarak çalıştırabilmelisiniz.

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.