Kullanıcı uygulamalarını kurarken, “en iyi uygulamalar” nerede konumlandırılmasını önerir?


210

Zaman zaman uygulamaları aptveya başka bir paket yöneticisini kullanmak yerine manuel olarak yüklerim .

Ne (konum /usr/, /usr/local/, /opt/, /home/, vb) kullanıcı uygulamalarının kurulumu için "en iyi uygulamalar" nın,?


Sık sık kaynaktan bir şeyler yüklemeyi sevdiğim için, kabuk başlangıç ​​dosyanızdaki değişiklikleri kendi başına yapan küçük bir araç yazdım (ve ayrıca isterseniz paylaşılan kütüphanelere bağlı programlar için kütüphane önekinizi değiştirin ). Çok zengin özelliklere sahip değil, ancak zamanın% 99'unu çalışıyor.
new123456


1
/optVe arasındaki ayrım üzerine harika tartışma /usr/local: unix.stackexchange.com/q/11544/11917
blong

Yanıtlar:


184

Bu gerçekten değişir. Uygulamanın bir setup.pydosya dosyası veya örneğin uygulama distutils (örneğin, bir dosya var) veya benzer bir derleme / yükleme sistemi kullanıyorsa python uygulamaları için varsa, onu yüklemelisiniz /usr/local/. Bu genellikle varsayılan davranıştır.

Anladığım kadarıyla, /usr/local/benzer bir hiyerarşi var /usr/. Bununla birlikte, /usr/bin/ve gibi dizinler /usr/lib/genellikle üzerinden yüklenen paketler için ayrılmıştır apt. Bu yüzden "kurulmasını" bekleyen bir programın /usr/iyi çalışması gerekir /usr/local/.

Sadece bir tarball ayıklamanız ve doğrudan çalıştırmanız gerekirse (örn. Firefox) o zaman içine koyun /opt/. Sadece bir dizine ihtiyaç duyan ve o dizine göre olan tüm dosya / kütüphaneleri alacak bir program kendisi için bir dizin alabilir /opt/.


24
Görünüşe göre birçok insan unutuyor opt/- bence amacına göre kafasına çiviyi vurdun.
Marco Ceppi

3
/ Usr / bin'den bir bağlantı kurun veya ~ / .bashrc içindeki PATH öğesine ekleyin
Alex

1
Ne hakkında ~/.local/share? @Marco
ultimatex

1
İçine bir şey yükleyebilirsiniz ~(giriş dizininiz), ancak bu, bir uygulamayı yalnızca bir kullanıcı tarafından erişilebilir hale getirir. Sisteminizdeki diğer kullanıcıların bu yazılımın kendi kurulumlarını kurması ve sürdürmesi gerekir. Uygulama yükleme konusundaki en iyi uygulamalara gelince, ana dizininizi kurun, sistem paketlerini etkilemeyeceğiniz için güçlü yönergeler olmadığına inanıyorum.
Umang

1
/ Home / ubuntu / myapp altındaki tar 'dan açılmış uygulamaları yüklemek yanlış mı? Bu, / opt / myapp ile karşılaştırıldığında ne fark eder?
JARC

116

O hatırlamakta fayda /usriçin durmazsa kullanıcı ziyade Unix sistem kaynakları .

Dolayısıyla, herhangi bir dağıtımın tüm içeriğini durdurma haklarına sahip /usr,olduğunu ve sisteme yapılan spesifik eklemelerimin içeri girdiğini /usr/local, bir yükseltme yapmadan önce koruduğumu anlamaya meyilliyim .

Bu arada, uygulamalar ve diğer şeyler de içeri giriyor /opt.

Bazı insanlar bir şeyleri koymakta kendilerini rahat hissederler /home, ancak ben bu sözleşmeyi nadiren takip ederim.

Bütün bunlar, dağıtım paketi yöneticisinin önce işleri yolunda bırakmasına, sonra da el işleri yaparken yukarıdakileri yapmasına izin verdim.


35
'Unix sistem kaynaklarının', '/ home' işleminden sonra yapılan bir yeniden adlandırma olduğunu hatırlamakta fayda var. Eski, eski, eski günlerde (Unix Versiyon 6 ve diğerleri) / usr / jimmy, / usr / siobhan, / usr / ahmed gibi dizinleri görürsünüz, çünkü "user" dizinleri / usr içinde saklanır. .
Mark Leighton Fisher

5
Tamam ısırıyorum: opt ne anlama geliyor?
Seth

3
@Seth 'isteğe bağlı' olduğunu düşünüyorum - başlangıçta varsayılan yüklemenin parçası olmayan bir yazılımdı.
Carl H

5
/ usr User. Çünkü linux kullanıcıları geliştiricilerdi. İlk önce kullanıcılara ve kullanıcılara ayrılmaya başladığında /homedir tanıtıldı. Sonra biri anlama geldiğini söylemek fikri vardı Unix System Resources, gerçekten mantıklı etmeyen, biz var çünkü Unix system Resourcesin/dev
Info-Screen

2
Doğru, / usr bir backronym. Amaç, Unix'in 1969'da bir PDP-7'de çalıştığı günlerden beri değişti.
Walt Stoneburner

34

/ Home / user / opt / dizinine firefox devel gibi dengesiz programları kurun, kaldırmayı çok kolaylaştırır ve diğer kullanıcılar için hangi sürümü kullanmaları gerektiği konusunda bir karışıklık yaratmaz ... Yani, global kullanım için bir program değilse, kurun. Giriş dizininizdeki bir alt klasörde.

Asla / usr / 'da programlar yüklemeyin, kaos yaratma olasılığı yüksektir, / usr /' da kurulu olan şeyler sadece dağıtım paketleri içindir. / usr / local / yerel olarak derlenmiş paketler içindir. Ve genel bakış tamamen aynı şekilde çalışıyor! / usr / local / içindeki dosyalara / usr / içindeki dosyalara öncelik verilecektir

/ opt / önceden derlenmiş (ikili) paketlerin (Thunderbird, Eclipse, Netbeans, IBM NetSphere vb.) kurulumunda kullanılmalıdır. Ancak, yalnızca tek bir kullanıcı için kullanılıyorsa, giriş dizininize eklenmelidir.

"Garip" bir yere kurulmuş bir programı (/ home / user / opt / firefox / gibi) çalıştırabilmeniz için $ PATH değişkeninize eklemeniz gereken yolu yazmanız gerekir. /home/user/.profile dosyasına böyle bir satır eklemek

export PATH=/home/user/opt/firefox:$PATH

Klasör adı, çalıştırmanız gereken çalıştırılabilir dosyanın bulunduğu ad olmalıdır.


26

Linux Dosya Sistemi Hiyerarşi Standardı gösterir /usr/local.

Http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html adresinden :

'/ Usr / local' arkasındaki asıl fikir, '/ usr' dışında her makinede ayrı bir ('yerel') '/ usr' dizini olmasıydı; '/ Usr' yapısını kopyalar. Bu günlerde, '/ usr / local', kendini derlenmiş ya da üçüncü parti programların sürdürüleceği iyi bir yer olarak kabul edilir. / Usr / local hiyerarşisi, yazılımı yerel olarak kurarken sistem yöneticisi tarafından kullanılır. Sistem yazılımı güncellendiğinde, üzerine yazmaktan güvenli olması gerekir. Bir grup ana bilgisayar arasında paylaşılabilen, ancak / usr'da bulunmayan programlar ve veriler için kullanılabilir. Yerel olarak kurulan yazılım, / usr içindeki yazılımı değiştirmek veya yükseltmek için kurulmadıkça, / usr yerine / usr / local içine yerleştirilmelidir.


1
Bu / usr / yerel öğelerini tercih sayfasındaki bilgilerle çelişiyor gibi görünüyor: tldp.org/LDP/Linux-Filesystem-Hierarchy/html/opt.html "" Bu dizin tüm yazılım ve eklenti paketleri için ayrılmıştır. varsayılan kurulumun bir parçası değildir. Örneğin, StarOffice, Kylix, Netscape Communicator ve WordPerfect paketleri normalde burada bulunur. FSSTND'ye uymak için, tüm üçüncü parti uygulamaların bu dizine kurulması gerekir. "..." (Windows'un yeni yazılımı kendi dizin ağacına C: \ Windows \ Progam Files \ "Program Adı'na yükleyeceği şekle benzer) ")"
Pod

6

Genelde evimde bu programları kurduğum "Programlar" adında bir klasör var, yeterince garip (ya da değil) hepsi şu anda java malzemesi.

Benim için büyük bir avantaja sahiptir, bilgisayarları yeniden taktığımda veya değiştirdiğimde evimin geri kalanıyla birlikte taşınırlar. Açık bir dezavantajı var, bu uygulamalar sadece kullanıcıma açıktır.


Ubuntu 16.04'ü giriş klasöründeki verileri kaybetmeden nasıl yeniden kurabilirim? Sadece biçimlendirme /dizini ile yapmaya çalıştım ancak aynı eski kullanıcı adını ve şifreyi yazdım ancak Ubuntu'nun başka bir giriş klasörü yarattığını gördüm .
Ibrahim Disouki,

1

Alien paketinizi bir mebere dönüştürmek için "checkinstall" komutunu kullanın, böylece paket yöneticisi kullanılarak kaldırılamaz.

Config dosyalarının genellikle config dosyaları olarak kullanılmayacağını (belki de görmezden gelinir veya belki de uygulamanın bir parçası olarak kabul edilir) ve kurulum öncesi ve sonrası komut dosyalarının bazen tıklandığını, bunun genellikle sizi düşündüğü zaman sizi uyaracağını unutmayın. deb, kurulum öncesi veya sonrası kötü bir komut dosyasına sahip olacaktır.

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.