Ubuntu'ya bir programın nereye kurulacağını ve mevcut bir programın nereye kurulduğunu nasıl söyleyebilirim?


10

Şu anda Ubuntu Sunucusu kullanarak Ubuntu / Linux için tamamen yeniyim. Sadece temel bir şey bulmaya çalışıyorum.

Bir programı nereye yüklediğinizi nasıl anlayabilirsiniz? Örneğin, sitelerinden indirdiğim tarball'ı yerleştirerek Sphinx arama motorunu yeni kurdum:

/home/sphinx

dizin. Bu tarball'ı yerleştirmek için sfenks dizinini oluşturdum. Sonra şu komutları çalıştırdım:

tar xvzf sphinx-0.9.8.1.tar.gz
cd sphinx-0.9.8.1/
./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql

ve sonra bunlar:

make
sudo make install

Şimdi dizinde bu komutları çalıştırdığım birçok dosya var. Bu benim Spynx kurulumum mu yoksa başka bir yere mi kurdu?

Windows'ta, program her yerde C: \ Program Files dizininize yüklenecek bir yükleyici (.exe dosyası) çalıştırırsanız. Tüm programların merkezi bir yere kurulduğu linux için de benzer bir şey var mı yoksa sistemdeki herhangi bir yere program yükleyebilirsiniz.

Sorular

  1. Yüklü programlarımı tek bir yerde tutmayı tercih ederim, bu yüzden en iyi uygulama için bunun için doğru yer nedir. Başka bir deyişle, C: \ Program Files'ın Linux eşdeğeri nedir?

  2. Ve kişi her zaman bu konuma nasıl kurulur, sadece tarball'ı yerleştirmek ve bu konumdan install komutlarını çalıştırmak mudur?

  3. Bir paket yüklemek için sudo apt-get kullanırsam ne olur? Apt-get komutunu her zaman oraya yüklemesini bildirmek için bu konumu nasıl işaret edebilirim?

Yanıtlar:


15

Tüm programların merkezi bir yere kurulduğu linux için benzer bir şey geçerli midir?

Linux'ta Windows kurulum dizinlerinin yaklaşık eşdeğerleri

  • \Windows = /bin
  • \Windows\System32= /libve/sbin
  • \Program Files= /usr/binve/usr/lib

Yüklü programlarımı tek bir yerde tutmayı tercih ederim, bu yüzden en iyi uygulama için bunun için doğru yer nedir. Başka bir deyişle, C: \ Program Files'ın Linux eşdeğeri nedir?

Bu /usr, özellikle /usr/binve altındaki dizinler olacaktır /usr/lib.

Ve kişi her zaman bu konuma nasıl kurulur, sadece tarball'ı yerleştirmek ve bu konumdan install komutlarını çalıştırmak mudur?

  • Hayır . İnstall komutlarını çalıştırdığınızda nerede olursanız olun neredeyse hiç önemli değil.

  • apt-get(Veya aptitude) üzerinden yüklediğiniz programlar neredeyse her zaman uygun şekilde sonuçlanır /usr. ANCAK programlar kaynaktan derlemek ve make installdaha sık içinde sona erecek /usr/local/bin, /usr/local/libvb, ve Debian / Ubuntu kullanıcı tarafından yüklenen yoludur beri bununla sorunlar olabilir /usrdeğil /usr/local.

  • Kaynağından derlerken, yapılandırmak için bu anahtarı ekleyin: ./configure --prefix=/usr. Bu şekilde make installdosyalar doğru dizine geldiğinde

  • Ayrıca checkinstall, bir paketin kaynak yüklemelerinden derlenen dosyaları izleyen, bir deb dosyası oluşturan ve kolay kaldırma / yeniden yüklemeyi sağlayan programa bakın .

Bir paket yüklemek için sudo apt-get kullanırsam ne olur? Apt-get komutunu her zaman oraya yüklemesini bildirmek için bu konumu nasıl işaret edebilirim?

apt-get/ dpkgbununla otomatik olarak ilgilen. dpkg -L name-of-packageBir paket tarafından yüklenen tüm dosyaları ve bunların nereye kurulduğunu görmek için kullanabilirsiniz .


ayrıntılı cevap için teşekkürler, sadece bir soru. "Hayır. Nerede olursanız olun, yükleme komutlarını çalıştırdığınızda neredeyse hiç önemli değil.", Bu, programı yüklediğim anlamına gelir. ve install ve yapılan komutları çalıştırdı? Bu, şimdi bir programı yüklemek için çalıştırdığım ve şimdi bir faydası olmayan bir yükleyicinin eşdeğeri mi?
JakeRow123

1
Evet, tarball'dan çıkarılan klasörü silebilirsiniz - aslında yükleyicinin çıkarıldığı bir "temp" klasörü gibidir ve artık işe yaramaz. Bu harika bir soruydu, cevabı bu bilgiyi içerecek şekilde düzenleyeceğim.
ish

Yapabilirsiniz, ancak daha sonra 'make uninstall' ile bunları kaldırmakta sorun yaşayacaksınız. Debian / Ubuntu'da yazılımınızı asla / / / usr önekine yüklememelisiniz, / usr / local kullanmalısınız. Neden / usr / local yerel yöneticiler için oluşturulduğundan, kendi programlarınızı kurmak için JakeRow123 sizsiniz. / ve / usr yalnızca Debian paketleri içindir. Eğer orada kurarsanız, chanses büyük sorunları alacak. Bu yüzden kendi derlediğinizde configure komutunun '--prefix = / usr / local' anahtarını kullanın. Sonra 'yap; sudo make install 'programı oraya kurar.
Anders

@Anders, make uninstallstandart bir özellik DEĞİLDİR ve birçok program kaynağında bulunmaz. Ayrıca, /usr/localgenellikle Ubuntu yolunda değildir ve programları çalıştırmaya çalışırken veya derlemeye çalışırken (içerdiği için /usr/local) sorunlara neden olabilir .
ish

Yazılımı / usr altında olduğu gibi yanlış yere / usr / local gibi doğru yere KURMAMALISINIZ. Bilgisayar / kullanıcı ortamı doğru kurulmamışsa hatayı PATH ile düzeltmelisiniz. / Veya / usr altında kurulum yapmak başınızı belaya sokacaktır. Buna inan bana. Orada bulundum ve yaptım. Herhangi bir eğlenceli değildi. Hiç. Yapılandırma komutuyla ayarladığınız tüm autoconfig özellikli bazı programlar kaldırıldı. Buna sahip olmayanlar yararlı değildir ve bir hata bildirilmelidir ...
Anders

4

Genellikle program, önek adı verilen bir üst dizinin altındaki birkaç dizine yüklenir . Hangi üst dizinin kullanılacağı, kimlerin yüklendiğine, cadı amacına ve yazılımı kimin yöneteceğine bağlıdır.

Önek /usrdağıtımınız tarafından paketlenmiş yazılım kullanılır. Sen gerektiğini değil çünkü, orada başka bir yazılım yüklemek olacak yükleme ve dağıtım ile paketlenmiş yükseltme yazılımı ne zaman dağılımını karıştırmayın. Bu yüzden lütfen kendi derlenmiş yazılımınızı oraya kurmayın. Yani değil gerçekten ne yaptığını biliyor sürece, iyi bir fikir. Debian veya Ubunut geliştiricisi değilseniz genellikle yapmazsınız. Zaten yapmazdım.

Ticari yazılımlar için önek /optkullanılır. Dağıtımlara ve yerel sistem yöneticisine en az müdahale etmeleri için ayrılmıştır.

Sistem yöneticisinin tüm kullanıcılar için yüklediği yazılımlar için önek /usr/localkullanılır. Orada hem ticari hem de dağıtım kurulumundan çıkış yolu var ve bunlara müdahale etmeyecek. Yani bir sistem yöneticisi olarak bunu kullanırsınız (kök ayrıcalıklarına sahipseniz, bir sistem yöneticisisiniz).

Kendiniz için yazılım yükleyen sıradan bir kullanıcıysanız, " " veya önek dizini ile --prefixseçeneğini kullanarak ana dizininizi önek olarak kullanabilirsiniz . Ben öğrenciyken bunu çok kullandım. :-)configure~/$HOME/

Genellikle yazılım doğru değeri ve ardından configureseçeneği --prefixile yürüttüğünüzde doğru olanı yapar make; make install.

Bu öneklerden herhangi birinde, genellikle bu dizinleri standart bir kurulumda bulabilirsiniz.

  • bin - yürütülebilir programlar, ikili dosyalar.
  • sbin - genellikle sıradan kullanıcılar tarafından yürütülmemesi gereken sistem ikili dosyaları.
  • man - Programlar, kütüphaneler ve yapılandırma dosyaları vb. için manuel sayfalar
  • etc - Yazılım için varsayılan değerlere sahip dosyaları yapılandırma.
  • lib - bilgisayarınızdaki mimariye (CPU gibi) bağımlı program kütüphaneleri ve veri dosyaları.
  • share - farklı mimarilerde farklı olmayan ve farklı bilgisayarlar arasında paylaşılabilen veri dosyaları.
  • var- program yürütülürken değişen veriler içeren dizinler. Günlük dosyaları gibi.

Bu dizinlerin çoğu güvenliği artırmak için yazmaya karşı korumalı dosya sistemleri ile kullanılabilir. Kullanıcıların yazması gereken tek var/dizin. Yazılım güncellendiğinde bu dizinlerin açıkça (?) Yazma ayrıcalıklarına sahip olması gerekir. Bu, kurulum sırasında yazma ayrıcalıklarına sahip bir yeniden montaj ile yapılabilir ve daha sonra sadece kurulumdan sonra okuma ile yeniden monte edilebilir. Ancak bu ileri düzeydedir ve bunu yalnızca gelişmiş paket yönetimine örnek olarak veririm.

Orada doğrudan altında ayrıca bazı dizinleri vardır /gibi başka önek altında var olmayan (kök dizin), /dev, /tmp, /procve /srv(sunucu veri dizinler için, ancak altında genellikle /var/libya /var/wwwve değişiklik yapılandırmasına gerek yüzden böyle dizinleri, Bir sunucu çalıştırırken bunu yapmanızı öneririm.Sadece /var/standart bir kurulumu test etmek için kullanın ).

  1. Linux MS Windows değildir. Yüklediğiniz programları yerleştirebileceğiniz birçok yer var. Kimin yüklediğine ve kimin için olduğuna bağlıdır. Yazımda okuyun. Farkına varmak. RedHat /usrDebian / Ubuntu olarak kullanır /usr/local. Dağıtımınızı öğrenin.
  2. Farklı programların farklı kurulum yöntemleri vardır. --prefixkullanan programlar için kullanışlıdır configure. Bilmenin en iyi yolu, muhtemelen README.txtkatran arşivinde sağlanmış olan dosyayı veya bunun gibi bir şeyi okumaktır . Katran arşivi, ana dizininiz gibi herhangi bir yere çıkarılabilir. Kurulum adımı tamamlandıktan sonra, depolama alanınız yetersizse çıkarılan katran arşivini kaldırabilirsiniz. Ancak, kurulumunuzu düzgün bir şekilde test etmedikçe bunu erken yapmayın.
  3. Programlar ile yüklenen apt-getveya aptitudedaima dağıtım için uygun yere monte edilir. O yeri değiştiremezsiniz.

2

Programları normal yüklemeyi kullanarak bir havuzdan yüklediğinizde, doğru yere yüklenir, doğru yerde yapılandırma dosyaları oluşturulur (işlevsel olarak Windows kayıt defterine benzer) ve menü girişlerini otomatik olarak oluşturur.

Bir dosya indirdiğinizde (tercih edilmez, ancak uygulama bir depoda olmadığında genellikle gereklidir), yaptığınız ilk şey tar'ı çalıştırmaktır, Windows'ta sıkıştırmaya eşdeğerdir. Bu, büyük olasılıkla gördüğünüz dosyaları oluşturur.

Daha sonra, make install komutunu çalıştırdığınızda, bu genellikle sonuçları doğru yere koyar, belki menüler oluşturur, ancak katlanmamış dosyaları silmez. Büyük olasılıkla bunu yapabilirsiniz, ancak her ihtimale karşı geçici olarak kaydetmek isteyebilirsiniz.

İşte Debian Dizin Yapısı ile ilgili ilginç bir makale .


Güzel bir makale, ancak sistem tarafından yüklenen yazılımlarla ve dağıtımlarınızla (Ubuntu gibi) kendi yazılımınızı yüklediğiniz / usr / local'a herhangi bir referansı yoktu. Kendi yazılımınızı / veya / usr altında kurmak problemleri istemektir, muhtemelen tek çözüm sistemi yeniden sıfırdan kurmaktır ...
Anders
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.