Yazılımın tek sen , ihtiyaç yerine ev dizini kullanın /usr/local
.
/usr/local
İstemediğinizde komutların sahipliğini değiştirmek veya kök olarak çalıştırmak zorunda kalmak yerine, yapılarınızı yalnızca ana dizininiz yerine ana dizininize yüklenecek şekilde yapılandırmanız gerekir./usr/local
. Bu, sahibinin ve alt dizinlerinin yolunda /usr/local
nasıl olduğu da dahil olmak üzere sahipliğinin değiştirilmesiyle ilgili tüm olası sorunları giderir .bin
sbin
root
Diğer kullanıcıların yazılımınızı çalıştırmasına izin vermeniz gerekiyorsa, onlara erişim verebilirsiniz. Aslında, muhtemelen zaten başarabileceklerdir, çünkü varsayılan olarak ana dizininiz izin verilen okuma ve yürütme erişimi . (Bunu istemiyorsanız, sadece chmod
özel yapmak istediğiniz dosya veya dizinleri kullanarak ve muhtemelen de değiştirerek kolayca değiştirebilirsiniz umask
.)
Ana dizininize yazılım yüklendiğinde, /usr/local/bin
içeri girecek olan ikili dosyalar yerine geçecektir . Yüklediğiniz yazılımın ihtiyaç duyduğu alt dizinlere karşılık gelen ana dizininizin diğer alt dizinlerini alırsınız . Bu, genellikle kaynak koddan yazılım yüklediğinizde otomatik olarak gerçekleşir./home/username/bin
/usr/local
Yapılarınızı Yapılandırma
Kaynak koddan oluşturduğunuz çoğu yazılımın çalıştırdığınız bir adımı vardır:
./configure
Bu configure
şekilde çalıştırılabilen bir komut dosyasıyla birlikte gelen yazılımların büyük çoğunluğu için, /usr/local
nihayetinde sudo make install
onu yüklemek için çalıştırdığınızda içerideki kurulum için yapılandırmayı varsayılan olarak yapılandırır . Bunun nedeni, dolaylı olarak çalıştırmaya eşdeğer olmasıdır:
./configure --prefix=/usr/local
Bir dizini ana dizininize yüklenmek üzere yapılandırmak için bunun yerine bunu kullanın:
./configure --prefix="$HOME"
Pratikte, Ubuntu'da, giriş dizini yolları boşluk, diğer boşluk veya özel olarak kabuk tarafından işlenecek diğer karakterler içermez *
, bu nedenle kullanıcı hesabınızı oldukça garip bir şekilde ayarlamadıysanız, şunları yazabilirsiniz:
./configure --prefix=$HOME
(Bununla birlikte, komut dosyaları yazmak için alışkanlık edinmenizi önermiyorum . Ayrıca, macOS gibi bazı diğer işletim sistemlerinde, kullanıcıların ev dizinlerine giden yolların boşluk içermesi daha az yaygındır.)
İsterseniz tam giriş dizini yolunuzu da yazabilirsiniz:
./configure --prefix=/home/username
( username
Tabii ki gerçek kullanıcı adınızla değiştirin . Herhangi bir nedenle ana dizininizde değilse, /home
buna göre ayar yapmanız gerekir.)
Yapılarınızı Kurma
Eğer çalıştırdıktan sonra make
, çalıştırmakta alışık olabilir sudo make install
, ancak kendi ev dizininde yüklediğinizde yapabilirsiniz öyleyse, root olarak çalıştırmak için gerek yoktur - ve gerektiği --omit sudo
. Sadece koş:
make install
Benzer şekilde, bir uninstall
hedefi destekleyen yazılımlar için :
make uninstall
Tam olarak istediğin buydu ... sadece ana dizininizde değil /usr/local
.
Programlarınızı Çalıştırma
Muhtemelenbin
ev dizininin alt dizin biri geçerlidir:
- zaten senin
$PATH
, ya
- Gözlerinde farklı olacak
$PATH
sadece geri çıkın ve eğer.
Bunun nedeni, .profile
giriş yaptığınızda çalışan komutları içeren giriş dizininizdeki dosyanın , Ubuntu'nun çoğu sürümünde (işletim sistemini yüklediğinizde oluşturulan ilk yönetici hesabı dahil) oluşturulan kullanıcı hesapları için bunu varsayılan olarak içermesidir :
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Bu kod, oturum açtığınızda (çünkü içinde .profile
) çalıştırılır ve kişisel bin
dizininizi $PATH
yalnızca o anda varsa yerleştirir. Bu yüzden oturumu kapatıp tekrar açmanız gerekebilir.
Ubuntu 14.04 gibi eski sürümlerin yanı sıra Ubuntu 17.10 gibi yeni sürümler de bununla birlikte gelir. Ancak, muhtemelen bu yazının en popüler sürümü olan Ubuntu 16.04, bunun yerine şunları içeriyor:
# set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
Bu , bu dizinlerin gerçekten var olup olmadığını kontrol etmeden bin
, ana dizininizin alt dizinini - ve aynı zamanda .local/bin
alt dizini - ekler $PATH
. Dolayısıyla, 16.04 kullanıyorsanız veya kullanıcı hesabınız oluşturulduğunda 16.04 olan bir sistemden yükseltme yaptıysanız bin
, ana dizininizin alt dizini zaten$PATH
.
Kişisel .profile
dosya kopyalanır /etc/skel
kullanıcı hesabınızın oluşturulduğunda dizinde. Kullanıcı hesabınız eski bir Ubuntu sürümünde oluşturulduysa, .profile
daha yeni bir sürüme yükselterek o sürümünün sürümünü aldı ve kullanıcı hesabınız için değiştirilmedi.
Giriş bin
dizininizin alt dizini sizin $PATH
içindeyse, tıpkı Ubuntu'nun paket yöneticisi tarafından yüklenen veya içine yüklenen programlarda olduğu gibi, çalıştırılabilir dosyaları oraya yüklenen programları çalıştırabilirsiniz /usr/local
.
.local
Seçenek
.profile
Yukarıda açıklanan 16.04 dahil olmak üzere bazı Ubuntu sürümlerinde oluşturulan kullanıcı hesapları için varsayılan dosyanın yalnızca $HOME/bin
yolunuza değil, aynı zamanda eklediğini fark etmiş olabilirsiniz $HOME/.local/bin
. Eklemiyorsanız .profile
, ancak eklemek istiyorsanız , o zaman kolayca düzenleyebilirsiniz.
Gerçi genellikle mağaza ayarları ve önbelleğe alınmış verileri için kullanılan , ayrıca içeride yazılım yükleyebilir .local
ev dizininin alt dizinine. Bir kullanılabilirlik ve güvenlik açısından olduğu gibi, bunu yaparken de sınır tanımayan hissetmelidir --prefix="$HOME/.local"
benzer--prefix="$HOME"
.
İle başlayan dosya ve dizinlerin .
grafik dosya tarayıcılarında varsayılan olarak gösterilmediğini ( göstermek ve yeniden göstermek için Ctrl+ Hkullanın) veya ls
komutla ( göstermek için -A
veya -a
işaretini iletin ) unutmayın. Bu istediğiniz gibi olmayabilir veya tam olarak istediğiniz gibi olabilir. Bu kişisel bir tercih meselesidir.
Ancak, bir kişinin ev dizininde yazılım oluşturan ve yükleyen bazı otomatik kaynak tabanlı paket yöneticilerinin olduğunu gözlemledim $HOME/.local
. Bunun ne kadar yaygın olduğunu bilmiyorum - daha fazla araştırmayı ve bu yanıtı güncellemeyi umuyorum - ama sadece kullanmayı tercih edebilirsiniz$HOME
elle derlediğiniz şeyler için . Bu şekilde olayların nereden geldiği açık olacak. Bir çarpışma olursa, yazılım hala kabul edilebilir bir şekilde bir arada var olabilir.
Ayrıca kasıtlı olarak bazı yazılımları $HOME/.local
ve diğer yazılımları da yükleyebilirsiniz $HOME
. Sana kalmış. Hangisi bin
dizin öncelikle görünen $PATH
bir komut durumunda, gelen aday olacağını birini ortam değişkeni olduğunu hem de aynı adı varoldukları için komutları.
Kredi gider Zanna ve Videonauth için hatalarını işaret bir de önceki sürümde Ubuntu bültenleri hangi varsayılan koduna sahip olan ilgili, bu cevabın .profile
ve düzeltmek için bana yardımcı onları (ayrıca bkz burada ).