Bir paketin hangi depodan geldiğini nasıl öğrenirim?


147

Bir paketin hangi depodan geldiğini söyleyebilecek bir yöntem veya komut var mı?


1
Bu belirsiz. Şunu mu demek istediniz: şu anda etkin olan depolar verilen ada sahip bir paket sağlıyor mu, ya da: şu anda yüklü olan bu ada sahip paketi yüklemek için hangi depo kullanılıyordu? (Her ikisi de yararlıdır. Eski
olanı

Yanıtlar:


112

Gerekli Komutlar:

  • dpkg -s <package>- yüklediğiniz sürümünü bulmanızı sağlar. ( kaynak )
  • apt-cache showpkg <package>- mevcut paketin Sürümlerinin bir listesini gösterecektir. Her sürüm için paketin kaynağı, bir dizin dosyası adı şeklinde verilecektir.

Şu anda kurulu olan paketin kaynağını bulmak istiyorsanız, çıktısını almanız gerekir dpkg -s <package>. Aksi takdirde, sadece en yeni sürüm çıktısına bakabilirsiniz apt-cache showpkg <package>.

Örnek:

$ dpkg -s liferea
Package: liferea
Status: install ok installed
Priority: optional
Section: web
Installed-Size: 760
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Architecture: i386
Version: 1.6.2-1ubuntu6
...

$ apt-cache showpkg liferea
Package: liferea
Versions: 
1.6.2-1ubuntu6.1 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid-updates_main_binary-i386_Packages
                  MD5: 557b0b803b7ed864e6d14df4b02e3d26

1.6.2-1ubuntu6 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages
                  MD5: 557b0b803b7ed864e6d14df4b02e3d26
...

İlk komuttan Liferea 1.6.2-1ubuntu6 sürümünün kurulu olduğunu görebiliyorum. İkinci komuttan bu versiyonun listelendiğini görebiliyorum /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_lucid_main_binary-i386_Packages.

Çok fazla çaba olmadan ben kaynak hattı içerdiğini çıkarabiliriz archive.ubuntu.com, ubuntu, lucid, ve main.

Ve, tabii ki, benim /etc/apt/sources.listsatır aşağıdaki satırı içerir.

deb http://archive.ubuntu.com/ubuntu lucid main universe restricted multiverse

Mac, ayrıntılı cevabınız için teşekkürler! Ne yazık ki, karşılanmayan bir bağımlılık sorunuyla ilgili ilk sorunumda bana yardımcı olmuyor :-( libqt4-opengl'i yüklemeye çalışıyorum ve şöyle diyor: Aşağıdaki paketlerin karşılanmayan bağımlılıkları var: libqt4-opengl: Bağımlılar: libqtcore4 (= 4: 4.6.2-0ubuntu5.1) ancak 4: 4.7.0 ~ beta1 + git20100522-0ubuntu1 lucid1 ~ ppa1 + appmenu20100624 kurulur. Bağlıdır: libqtgui4 (= 4: 4.6.2-0ubuntu5.1) ancak 4: 4.7. 0 ~ beta1 + git20100522-0ubuntu1 ~ lucid1 ~ ppa1 + appmenu20100624 yüklenecek
dfme

Sadece sorunun ne olduğunu görmek zor. Tüm detayları verebilmeniz için yeni bir soru açmalısınız. Bunu yaparsanız, yorumda bir bağlantı bırakın. :-)
Michael Crenshaw

4
apt-cache policy <package name>(from: superuser.com/a/236605/37279 )
franzlorenzon

Apt-cache {showpkg, policy} aslında yüklü bir paketin nereden yüklendiğini veya sorgulandığı sırada ne zaman yükleneceğini gösteriyor mu?
Croad Langshan

1
İkincisi. Genellikle Ubuntu kullanıyorsanız trustypaket kaynakları, daha sonra geçici olarak eklemek utopickardeşime karşı sources.listsürümünü 1.20ubuntu3 yüklemek için init-system-helperssonra benim tekrar repo kaldırmak sources.list, apt-cache showpkg init-system-helperssadece orijinal paket listesiyle ilgili yalan ve apt-cache policy init-system-helperssadece belirgin belirtecektir.
blubberdiblub

103

Aşağıdaki komutu kullanın. Daha iyi çıkışa sahiptir:

apt-cache policy <Package Name>

Ubuntu 16.04 ve sonrası için bunu yapmanın daha kısa bir yolu var:

apt policy <Package Name>

11
Bu doğru cevap! Mac9416 tarafından verilen cevaptaki komutlar, çıktılarına göre sıkıcı yorumlama + tahmin gerektiriyor. Daha fazla bilgi apt-cache policyiçin ayrıca bkz superuser.com/a/236605/61370
pabouk

3
apt-cache policyiyidir ancak bazı zamanlar apt-cache showpkgMD5 toplamlarını paketten karşılaştırmanız gerekir . Ayrıca bakınızdebsums --changed
gavenkoa 11

Bu policyseçenek en sources.list
iyisidir

Bu kabul edilen cevap olmalı! @pabouk haklı. Bu cevap, şu anda kabul edilenden daha fazla soru ile ilgilidir.
HEXcube

@ Pablo-bianchi'nin cevabına işaret ettiğiapt policy <package-name> gibi, 16.04LTS'den itibaren daha da basit bir şekilde kullanılabilir. Bir kez 14.04LTS 2018'de EOL'd oldu, bu cevap belki yeni komutu kullanmak için düzenlendi.
HEXcube 23:17

9

apt Ubuntu'da 16.04+

Bunun yanında apt-cache policy, showpkgve showşimdi daha basit, daha kolay hatırlanabilen alt komutlarla: apt(klasik ile karıştırmayın apt-*):

apt policy <package> 

Veya daha fazla bilgi içeren alternatif apt show <package>, "APT-Sources:" ile başlayan satır .

Açıklama: Bu paket, libapt-pkg kütüphanesinin tüm özelliklerine düşük seviyeli erişim olarak paketler hakkında bilgi sorgulamanın yanı sıra arama ve yönetim için komut satırı araçları sağlar. Bunlar: apt-get, apt-cache, apt-cdrom, apt-config, apt-key.

Temel komutlar apt --help

Diğer alt komutları da hatırlaması kolay:

  • apt list - paketleri paket adlarına göre listeler.
  • apt search - paket açıklamalarında arama
  • apt show - paket ayrıntılarını göster
  • apt update - mevcut paketlerin listesini güncelle
  • apt install - paketleri kurun
  • apt remove - paketleri kaldır
  • apt purge- paketleri ve yapılandırma dosyalarını kaldırın :

    Bir paketi kaldırmak, tüm paketlenmiş verileri siler, ancak kaldırma işleminin bir kaza olması durumunda genellikle küçük (değiştirilmiş) kullanıcı yapılandırma dosyaları bırakır. Yanlışlıkla kaldırılan paket için bir kurulum isteği yayınlamanız, bu durumda olduğu gibi işlevini geri yükleyecektir. Öte yandan, daha önce çıkarılan paketlerde bile temizleme çağrısı yaparak bu artıklardan kurtulabilirsiniz. Bunun, ana dizininizde depolanan herhangi bir veri veya yapılandırmayı etkilemediğini unutmayın.

  • apt upgrade - paketleri kurarak / yükselterek sistemi yükseltme

  • apt full-upgrade - paketleri kaldırarak / yükleyerek / yükselterek sistemi yükseltme
  • apt edit-sources - kaynak bilgi dosyasını düzenleyin

apt policy xxxaynı görünüyor apt-cache policy xxx, belki bunun yerine bir yorum olmalıydı. Ya da en azından diğer kaynaklardan gelen "ek kayıtları" görmek apt showiçin -aanahtara ihtiyaç duyulduğunu
belirtin

6

Ne yazık ki, bu bilgiler paket yükleme sırasında kaydedilmez. Depo hala kaynak listesinde ise ve depoda hala paket varsa, iyi bir tahmin yapabilirsiniz:

grep -l PKG /var/lib/apt/lists/*

Sinaptik bile havuzu ve güncellemeyi devre dışı bırakıp bırakmadığınızı söyleyemez.



1

Bu biraz daha doğru:

apt-cache show <packagename> | grep "Version:"

Apt-pinning ayarlamadıysanız veya belirli bir sürümü açıkça yüklediyseniz, en yeni sürüm genellikle yüklenir.

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.