Apt-get install başlığı altında ne yapar?


60

apt-get install ...Komut ne yapar ?

apt-get install ...Komuta girdiğimde , ekranda beliren bazı metinler var, ama benim için yeterli bilgiye sahip değil. Herhangi bir dosyanın oluşturulduğunu / düzenlendiğini, herhangi bir hizmetin başlatıldığını ve diğer faaliyetlerin olup olmadığını bilmek istiyorum ...

Çalıştırıldığında çalıştırılan herhangi bir .shdosya var mı apt-get install ...? Öyleyse, bu shdosyanın içeriğini nasıl görebilirim ?

Bu sorunun nedeni son zamanlarda tomcat7'yi yüklemeye çalıştım apt-get install tomcat7. Yükleyene kadar her şey yolunda gidiyor tomcat7-admin(yönetici web uygulaması), sunucu herhangi bir isteğe yanıt vermiyor. Bunu defalarca denedim ve bu her zaman oldu.




Daha fazla bilgi için wiki.debian.org/Apt adresini ziyaret edin
Pandya

2
14.04'den itibaren apt-getyerini alıyor apt. Yedek henüz tamamlanmadı ama bunun için çalışır install, upgradeve dist-upgradediğerleri arasında.
Paddy Landau

@PaddyLandau Bir değiştirme uygun mu, yoksa ekstra / sarmalayıcı yardımcı mı?
muru

Yanıtlar:


49

Çoğunlukla, apt-getaşağıdakileri yapar:

  • bağımlılıkları kontrol eder (ve yüklemelerini ister),
  • paketi indirir, doğrular ve sonra dpkgyüklemesini söyler .

dpkg niyet:

  • paketi çıkarın ve içeriği doğru yere kopyalayın ve önceden var olan dosyaları ve üzerinde yapılan değişiklikleri kontrol edin,
  • çalışma paket bakıcı komut : preinst, postinst, (ve prerm, postrmbu önce, bir paket yükseltiliyor ise)
  • tetikleyicilere dayalı olarak bazı eylemleri yürütmek

Genelde bulunan sürdürücü komut dosyaları ilginizi çekebilir /var/lib/dpkg/info/<package-name>.{pre,post}{rm,inst}. Bunlar genellikle kabuk komut dosyalarıdır, ancak zor bir kural yoktur. Örneğin:

$ ls /var/lib/dpkg/info/xml-core.{pre,post}{rm,inst}
/var/lib/dpkg/info/xml-core.postinst
/var/lib/dpkg/info/xml-core.postrm
/var/lib/dpkg/info/xml-core.preinst
/var/lib/dpkg/info/xml-core.prerm

30

Kısacası : apt-get installSisteminizin yüklenen yeni yazılım uygulamasını başarıyla uygulayabilmesi için gereken her şeyi yapar.

Uzun:

Ön Bilgiler:

Gönderen man :

Kurulum için belirtilen paket (ler) tarafından istenen tüm paketler de alınır ve yüklenir.

Bu paketler ağdaki bir depoda saklanır. Böylece, apt-getgerekli olanları geçici bir dizine ( /var/cache/apt/archives/) indirir . Bir web veya ftp sunucusundan indirilirler. Onlar sözde belirtilir sources.list; havuzların bir listesi. O andan itibaren prosedürel olarak birer birer kurulurlar.

Bunlardan ilki, başka bağımlılıkları olmayanlardır; bu yüzden onlar için başka bir paket kurulmasına gerek yok. Bu sayede başka paketlerin (daha önce bağımlılıkları olan) artık hiçbir bağımlılığı yoktur. Sistem, belirtilen paketler kuruluncaya kadar bu işlemi tekrar tekrar yapmaya devam eder.

Her paket bir kurulum prosedüründen geçer.

Paket yükleme:

Debian tabanlı Linux dağıtımlarında, Ubuntu olarak, bu paketler belirtilen standart bir biçimdedir: deb - Debian ikili paket formatı .

Böyle bir paket sisteme kurulacak dosyaları içerir. Ayrıca bir kontrol dosyası içerirler . Bu dosya, paketleme sisteminin belirli bir durumda çalıştırması gereken komut dosyalarını içerir; sözde kaleci komut dosyaları . Bu komut dosyaları ayrılmıştır:

  • preinst: dosyaların sisteme hiyerarşi içine yüklenmesinden önce
  • postinst: kurulumdan sonra
  • prerm: kaldırma işleminden önce
  • postrm: kaldırma işleminden sonra

Yeni bir paketin kurulum prosedürünü gösteren ilginç bir resim var:

Kurulum

Daha fazla kontrol dosyası var, en önemlileri aşağıdaki gibidir:

  • control: Bağımlılıkları ve paketi tanımlamak için diğer faydalı bilgileri içeren bir liste
  • conffiles: Bir yapılandırma dosyası listesi (genellikle bu dosyalar /etc)
  • debian-binary: şu anda 2.0 olan deb-pack versiyonunu içermektedir
  • md5sums: Doğrulamak için paketteki her bir dosyanın md5sums listesi
  • templates: Yükleme sırasında hata açıklamaları ve iletişim kutuları olan bir dosya

11

Asıl başlık altındaki şeyler için, Apt kaynağını almanız gerekir. Kaynak havuzlarını etkinleştirdiyseniz oldukça basit:

apt-get source apt

apt-getKomut kendisi yaşıyor cmdline/apt-get.cc. Okumak için bir acı ama apt-geteylemlerin çoğu orada oldukça yoğun olarak yazılmıştı. Ancak kurulum, DoInstalliçinde yaşayan bir fonksiyonla eşleştirilir apt-private/private-install.{cc,h}.

Apt-get'in madalyonun sadece bir tarafı olduğunu hatırlamak zorundasın.
dpkgAsıl yüklemeyi yönetiyor ancak doğrudan DoInstallbilmiyor dpkg. apt-getaslında şaşırtıcı bir şekilde paket yöneticisi agnostiğidir. Tüm işlevler soyutlanırapt-pkg/package-manager.cc

Sadece kısaca bakıyorum, ancak orada bile bunun gerçekte dpkgsistemlere nerede bağlandığını göremiyorum . Bunlardan bazıları otomatik olarak yapılandırılmış gibi görünüyor apt-pkg/aptconfiguration.ccama bu çok iyi bir şey. Günleri bunu çözmek için harcayabilirsin.

Kaynak dokümantasyon olsa iyidir. Her dosyaya bakmaktan ve gerçekte neler olup bittiğini anlamak için başlığı okumaktan daha kötü şeyler yapabilirsiniz.


6

Burada bu kısa cevaptan daha iyi olan bazı fantastik cevaplar var, ancak bir paket yöneticisi tarafından yapılan değişiklikleri daha iyi anlamanıza yardımcı olacak düşünebileceğiniz bir şey Docker . Bir kapta yapılan değişiklikleri kullanarak değişiklik yapabilirsiniz docker diff <container>ve size tüm değişiklikleri gösterecektir. Bu, apt-get installbir sistemde ne yaptığını görmek için kaputun altına bir göz atmak için özellikle yararlıdır . Hızlı bir arama, bunu yapmanıza yardımcı olacak birkaç kaynak sağlayacaktır.


1
Puanını verdiğin için teşekkürler. Docker kapsayıcısında firefox kullandım ve başka bir terminal sekmesinde kabın farkını yakından izledim ve kapta tüm dosyaların ne değiştiğini öğrendim. Daha net anlamama yardımcı oldu.
abhy
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.