سؤال كيف يمكن معرفة ما يأتي من مستودع Ubuntu أو Debian؟


في نظام يستند إلى دبيان ، بما في ذلك نظام Ubuntu ، كيف يمكن معرفة المستودع الذي سيتم تنزيل حزمة منه ، دون البدء بالفعل في التنزيل؟ aptitude show و apt-cache info سوف تظهر الجزء (على سبيل المثال ، metapackage ، قاعدة ، رسومات) ، ولكن ليس مستودع التي تنتمي إليها الحزمة (على سبيل المثال ، http://ppa.launchpad.net/mactel-support/ppa/ubuntu أو http://us.archive.ubuntu.com/ubuntu/).

عند تثبيت الحزمة ، يظهر المخزون الفعلي أثناء التنزيل (يتم طباعته في إخراج "تنزيل من ..." من apt والبرامج المشابهة) ، ولكن كيف يمكن الحصول على معلومات عن المستودع الذي يحتوي على الحزمة (أو محددًا نسخة من الحزمة) بدون تحميل وتثبيته أولا؟

بالإضافة إلى ذلك ، كيف يمكن تحديد مستودع المصدر لحزمة مثبتة بالفعل؟


164
2018-02-09 19:14


الأصل


أجد هذا واحد من أوجه القصور في شقة. ليس من السهل معرفة من أي مستودع يوفر حزمة معينة ضمن أدوات مثبت الحزمة. - quack quixote


الأجوبة:


انا اجري apt-cache policy <package name>:

$ apt-cache policy wajig
wajig:
  Installed: 2.1
  Candidate: 2.1
  Version table:
 *** 2.1 0
        100 /var/lib/dpkg/status
     2.0.47 0
        500 file:/home/wena/.repo_bin/ squeeze/main i386 Packages
        500 ftp://ftp.is.co.za/debian/ squeeze/main i386 Packages

هذا يعني أن هناك ثلاثة wajig حزم:

  • واحد مثبت (/var/lib/dpkg/status)

  • واحد متاح من مستودع محلي (file:/home/wena/.repo_bin/)

  • واحد متوفر من مستودع بعيدftp://ftp.is.co.za/debian) ، والذي يحدث أيضًا أن يكون له نفس الإصدار (2.0.47) باعتبارها واحدة في مستودع محلي


بالإضافة إلى، apt-cache madison <package name> سيعرض معلومات مماثلة في تنسيق جدولي.

 wajig |        2.2 | mirror://mirrors.ubuntu.com/mirrors.txt/ precise/universe amd64 Packages
 wajig |        2.2 | mirror://mirrors.ubuntu.com/mirrors.txt/ precise/universe Sources

202
2018-01-22 22:00



لكنه لا يظهر من أين جاءت الحزمة المثبتة ، أليس كذلك؟ - Adobe
Adobe في حالتي ، و 2.1 الإصدار غير متاح من أي مستودع. انها بنيت محليا. - Tshepang
ما هو علامة حزمة مثبتة؟ *** أو /var/lib/dpkg/status ؟ - SuB
ربما كلاهما؟ غير متأكد. - Tshepang
عندما لا يتم تثبيت الحزمة ، apt-cache policy يقول: Installed: (none). - John McGehee


آها! على ما يبدو ، السليم apt الأمر ليس كذلك apt-cache info، ولكن بدلا من ذلك، apt-cache showpkg.

$ apt-cache showpkg linux-generic
Package: linux-generic
Versions: 
2.6.31.19.32 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic-updates_main_binary-amd64_Packages) (/var/lib/apt/lists/security.ubuntu.com_ubuntu_dists_karmic-security_main_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic-updates_main_binary-amd64_Packages
                  MD5: 5d722da329763b9342d322f5a140005c

2.6.31.14.27 (/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_main_binary-amd64_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_main_binary-amd64_Packages
                  MD5: 5d722da329763b9342d322f5a140005c


Reverse Depends: 
Dependencies: 
2.6.31.19.32 - linux-image-generic (5 2.6.31.19.32) 
2.6.31.14.27 - linux-image-generic (5 2.6.31.14.27) 
Provides: 
2.6.31.19.32 - 
2.6.31.14.27 - 
Reverse Provides: 

ال File: يوفر الخط معلومات المستودع بعد /var/lib/apt/lists/.

يوجد تقرير علة ذلك aptitude لا يمكن عرض مستودع المصدر، ولكن يبدو أن الميزة لا تزال موجودة حاليًا في قائمة الأمنيات.


27
2018-02-10 00:57



هذه الميزة aptitude لا تزال على whislist بعد 8 سنوات وأنا لا أعرف لماذا هذه الإجابة (apt-cache showpkg) لم يتم وضع علامة عليها كإشارة صحيحة. - Csaba Toth


هذا يعمل بالنسبة لي (يظهر فيها حزمة 2vcard):

$ grep 2vcard /var/lib/apt/lists/* | grep "Filename:"

/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_karmic_universe_binary-i386_Packages:Filename: pool/universe/2/2vcard/2vcard_0.5-3_all.deb

يمكنك تطبيق تصفية إضافية للتحقق من الإصدارات وما إلى ذلك ، في حالة توفر إصدارات متعددة.


8
2018-02-09 19:41



براغماتية. أنا مندهش من هذه المعلومات لا يمكن الوصول إليها من خلال أي من الأطراف الأمامية ل dpkg، على أية حال. - gotgenes
got إنه متاح: superuser.com/questions/106794/... - Tshepang


أتساءل لماذا لم يذكر أحد aptitude. أنا استخدامها في كل وقت.

الموهبة هي:

  • يتم شحنها بشكل افتراضي مع العديد من توزيعات ديبيان. يمكن تركيبها على غيرها (مثل أوبونتو) عبر sudo apt install aptitude
  • لا يتطلب امتيازات إدارية (على الأقل للأمر أدناه)
  • لديها لطيفة ncurses واجهة المستخدم الرسومية (ولكن معظم الوقت المستخدم بدونها)
  • يوفر إخراج جميلة حقا. لإظهار إصدارات الحزم ، استخدم aptitude versions أمر:

    me@wheezy:~$ aptitude versions kde-standard
    Package kde-standard:                        
    i A 5:77+deb7u1     stable              500
    p A 5:84            testing,unstable    130
    
  • ليس لديها قوى سوبر بقرة

تشير الرسالة الموجودة أمام كل سلسلة إلى حالة الحزمة ، أنا يتم تثبيت و ص يتم التخلص منه (أو لم يتم تثبيته أبدًا) ، مستقر، اختبارات و غير مستقر هي تعريفات مستودع ، والرقم في النهاية هو أولوية دبوس.

هناك تحذير واحد يتعلق بالإصدارات الحديثة من aptitude التي تستحق الذكر هنا: بشكل افتراضي ، يتم عرض جميع الحزم ، والتي تتضمن الاسم الذي تبحث عنه ، لذا استخدم رجإكس السحر قليلا للبحث عن طريق اسم صارم ، على سبيل المثال aptitude versions ^kde-workspace$.


8
2018-01-12 11:32



أمر جيد ولكنه لا يسرد المستودع كما هو مطلوب. - bjhend
في الواقع نعم هو كذلك. - TranslucentCloud
أنت لا تفهم يمكن تثبيت PPAs إضافية. من المهم معرفة ما إذا كانت الحزمة من مثل هذا PPA. في الواقع ، هذا هو ما أحاول التعرف عليه الآن - إذا كان كذلك ، يمكنني إزالة PPA ، والحد من مخاطر المشاكل. - reinierpost
نعم ، أنت على حق ، مع versions يمكنك ببساطة التحقق من قيم تثبيت علامة الحزم المعينة ، وليس عمليات إعادة الشراء المقترنة. لا يزال من المفيد إذا كنت تعرف جميع عمليات الشراء الخاصة بك وكيفية تثبيتها. - TranslucentCloud


للأسف ، لا يتم تسجيل هذه المعلومات أثناء تثبيت الحزمة. يمكنك عمل تخمين لائق إذا كان المستودع لا يزال في قائمة المصادر وما زال المستودع يحتوي على الحزمة:

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

apt-cache showpkgيتم عرض البيانات من قاعدة بيانات المخزون (وليس ما تم تثبيته) بحيث يكون شكل آخر من نفس المعلومات من grep.

لا يستطيع حتى synaptic إخبار (في شاشة الأصل) إذا قمت بتعطيل المستودع وتحديثه.


6
2017-10-20 21:42





أو ، مستوحاة من صني يمكنك محاولة:

# list installed restricted packages
for i in `dpkg --get-selections | awk '{ print $1 }'`; do egrep -lRI "^Filename: .*/${i}_[^/]+.deb" /var/lib/apt/lists/ | grep -q 'restricted' && echo $i; done

# list installed multiverse packages
for i in `dpkg --get-selections | awk '{ print $1 }'`; do egrep -lRI "^Filename: .*/${i}_[^/]+.deb" /var/lib/apt/lists/ | grep -q 'multiverse' && echo $i; done

فرع فلسطين. لا دقيقة 100 ٪.


2
2018-01-22 15:55