Fedora makinemde bir yazılım derlemem gerekiyor. Paketlenmiş yazılıma müdahale etmemek için en iyi yer neresidir?
Fedora makinemde bir yazılım derlemem gerekiyor. Paketlenmiş yazılıma müdahale etmemek için en iyi yer neresidir?
Yanıtlar:
En azından Debian aromalı sistemlerde temel kural:
/usr/local
şeyler için "sistem genelinde" -yani olan /usr/local
, bir dağıtıma varsayılan olma eğilimindedir $PATH
ve standart bir UNIX dizin hiyerarşisini izler /usr/local/bin
, /usr/local/lib
vb
/opt
Sistem genelinde yapmak için güvenmediğiniz şeyler için, uygulama başına öneklerle - yani /opt/firefox-3.6.8
, /opt/mono-2.6.7
vb. Buradaki öğeler daha dikkatli bir yönetim gerektirir, ancak sisteminizi kırma olasılığı da daha düşüktür ve yalnızca klasörü sildiğinizden ve silindiği için kaldırılması daha kolaydır.
/opt
sen yoksa sudo
yükleyin.
Gerçekten karışmasını istemiyorsan, içine sokma $PATH
.
İsterseniz $PATH
, en azından yüklemek istemediğinizden emin olun /usr/local
. Dağıtım tarafından yüklense bile birçok yazılımın orada göründüğünü gördüm /usr
.
Özel derlenmiş yazılımı yüklemek için en sevdiğim yol dizimde $HOME
. Bu şekilde sudo
hiçbir şey için kullanmak zorunda kalmazsınız ve sisteminizin geri kalanından çok hoş bir şekilde ayrılmıştır. Örneğin:
mkdir ~/stage
./configure --prefix=/home/username/stage && make && make install
İsterseniz Ve, daha sonra ekleyebilirsiniz /home/username/stage/bin
adresinden Müşteri $PATH
.
/usr/local
.).
FHS, dağıtımların buna dokunmaması gereken yere / usr / local içine koyulduğunu söyledi. /usr/local/bin
İkili /usr/local/src
kaynaklar için ve /usr/local/lib
kütüphaneler için. Daha fazla bilgi için FHS özelliklerine bakın
/etc/mysql
, yapılandırma için hala kullanmalı mıyım?
/usr/local/etc
Varsayılan olarak bir klasör olduğunu fark ettim , sanırım bunu kullanmalıyım ... :-)
Çoğu zaman kendi derlenmiş eşyalarımı içine koymayı severim /opt
. Bir tür sahte standart yer. Ayrıca düşünebilirsiniz /usr/local
, ancak eşyalarımı% 100 izole tutmayı tercih ederim.
/opt
ancak defalarca gördüm, /usr/local
dağıtıma geliyor önemsiz ile çevrili olan
/usr/local
, standart ağaçtakileri paralel hale getiren dizin hiyerarşileri ve TeX gibi şeyler için dizin dosyaları oluşturmaktı.
Onları koy /usr/local/src
.
Yaptığım şey bu dizindeki kaynağı çıkarmak. Gibi bir yol yaratacaktır
/usr/local/src/postgresql-8.3.7
Sonra ona sembolik bir bağlantı oluşturuyorum:
/usr/local/src # ln -s postgresql-8.3.7 postgresql
Bütün binanı içeri yap /usr/local/src/postgresql
.
Bu şekilde işlem yapmak, hangi sürümü kullandığınızı sürümler ve belgeler arasında açmanız gerektiğinde yardımcı olur.
Bu bana hatırlatıyor, checkinstall'ı daha sık kullanmam gerekiyor ! Bu şekilde sadece her zamanki gibi yaparım
./configure
make
bunu takiben
sudo checkinstall
Bir .deb dosyası oluşturmak için ...
Kendi oluşturduğunuz birçok uygulamayı kolayca kurup kaldırmak istiyorsanız, Stow'u basit bir paket yöneticisi olarak kullanabilirsiniz .
Başına FHS , /usr/local/
olurken, kaynaktan derlenen uygulamalar için kullanılır /opt/
işletim sistemi satıcı tarafından desteklenmeyen 3. parti uygulamalar için kullanılır.
Tavsiye edebileceğim iki şey:
Sistem geneli: stow kullanın ve / usr / local / stow / package-version altında kurun. Sonra kolayca sürüm arasında geçiş yapabilirsiniz.
Evimde ya da / usr / yerel yazma iznim yoksa, kişisel olarak ~ / .local altındaki programları yükledim, bu da XDG standardına göre belirtilir .
Ben de hiç kullanmadım rağmen stow yerel olarak kullanabilirsiniz :)
Çoğu insandan biraz farklı bir kurulumum var çünkü çok fazla gelişim yapıyorum. Bunları içine kurduğum bir / home / jackson / bin / dizinim var.
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
Bunu her şey için yapmazdım, ama gelişim sırasında güzel.
Eğer bir uygulamayı derliyorsanız, PATH env değişkeninde çalıştırılabilir yolunu ekleyebilirsiniz. bu diğer kullanıcıları etkilemeyecektir.
Uygulamanızın sistemdeki tüm kullanıcılar tarafından kullanılabilir olmasını istiyorsanız ve gerekli izinlere sahipseniz, / opt. Uygulamanın yalnızca sizin (ve root'un) kullanımına açılmasını istiyorsanız, / home / username kullanın.
Bunu yapmanın en kolay yolu, kaynak paketi ( .src.rpm
RPMites için) kapmak , paketini açmak, yeni kaynak / konfigürasyon / hack'i kesmek, ne olursa olsun, sürümü uygun şekilde değiştirmek ve derlemektir. Bunun kurulması, paket yöneticinizin yeni paketin farkında olmasını sağlar, bağımlılıklar için dikkate almanızı ve kaldırmanızı / güncellemenizi sağlar.
Bu ilk defa bir angaryadır, ancak yeni bir sürüm (veya bazı kritik yamalar) ortaya çıkarsa, güncellenmesi daha kolaydır. Diğer bir yararı, örneğin bir laboratuardaki makineler tarafından paylaşılmak üzere yerel yazılımla kendi havuzunuzu oluşturabilmenizdir.