שאלה איך יודעים מאיזה מאגר yum חבילה הותקנה?


לאחר שהתקנתי חבילה על ידי yum (עם מספר מאגרים מוגדרים), כיצד ניתן למצוא מאתר זה הותקן?

אם אני רץ yum info package-name (או yum list package-name), אני יכול רק לראות כי החבילה היא "מותקנת".


138
2017-09-03 15:15




שאלה גדולה! התקנתי ימ-טילים וניסיתי אחד מהם, זה נקרא ריפוד, אבל לא היה לי מזל. - Sean Staats
ראה גם serverfault.com/questions/90409/... :) - warren
@warren הקישור שלך אינו שימושי כי הקישור שלך הוא שאלה על "מה ריפו הוא סל"ד מאוחסן" אבל השאלה הזאת שואלת "מה ריפו הוא סל"ד מותקן מ". שאלות שונות. - Trevor Boyd Smith
אם אתה רגיל לעשות rpm -qa|grep NAME אז את \ ה יכול \ ה לעשות yum list installed|grep NAME כדי למצוא מה ריפו סל"ד הוא מ. - Trevor Boyd Smith
@TrevorBoydSmith - לפני 7 שנים, זה היה סגור. היום זה עדיין דומה. מעולם לא אמר שזה היה אותו. רק שזה היה קשור. - warren


תשובות:


עם yum-utils מותקן, repoquery יספק את המידע שאתה מחפש (כאן 'epel' להיות מאגר).

└─[$]> repoquery -i cherokee

Name        : cherokee
Version     : 0.99.49
Release     : 1.el5
Architecture: i386
Size        : 8495964
Packager    : Fedora Project
Group       : Applications/Internet
URL         : http://www.cherokee-project.com/
Repository  : epel
Summary     : Flexible and Fast Webserver
Description :
Cherokee is a very fast, flexible and easy to configure Web Server. It supports
the widespread technologies nowadays: FastCGI, SCGI, PHP, CGI, TLS and SSL
encrypted connections, Virtual hosts, Authentication, on the fly encoding,
Apache compatible log files, and much more.

77
2018-06-21 19:16



repoquery לא נראה לעבוד נכון, אני מקבל גירסאות החבילה אז yum info package_name, זה לא נראה שאילתה המאגרים באותו סדר כמו yum. - Mike Miller
אותו הדבר על כמה שרתים. yum info package_name מחזירה תוצאות יותר מאשר repoquery כנראה. זו הסיבה מחסנית ערימה לא צריך לנעול קולות. - reflexiv
מצאתי את התשובה של שיונג צ'יאמיוב לא נכונה. repoquery -i $pkg נותן ריפו שממנו $pkg זמין, לא את ריפו שממנו $pkg הותקן. עשיתי את הפקודה הזאת rpm -qi $pkg וקיבלתי מספרי גרסה שונים. rpm גרמה למספר גרסה מוקדמת יותר מזה של repoquery.
ייתכן שהעותק המקומי שלך אינו מעודכן, או שהוא הותקן עם פקודות נוספות כדי yum (למשל. --use-mirror). אני לא חושב שאפשר תמיד לקבל את התשובה הנכונה. - Xiong Chiamiov


איזו גרסה של יאם?

בגירסה הנוכחית, אם החבילה המותקנת היא אותה גרסה כמו האחרונה שזמינה לאחר מכן, הריפו הותקן מהמוצג.

$ yum info irssi
Installed Packages
Name       : irssi
Arch       : i586
Version    : 0.8.14
Release    : 1.fc11
Size       : 2.3 M
Repo       : installed
From repo  : updates
Summary    : Modular text mode IRC client with Perl scripting
URL        : http://irssi.org/
License    : GPLv2+
Description: Irssi is a modular IRC client with Perl scripting. Only text-mode
           : frontend is currently supported. The GTK/GNOME frontend is no
           : longer being maintained.

$ yum --version
3.2.23

אם יש חבילה חדשה יותר זמינה, אז זה יוצג בנפרד, עם הגירסה החדשה מראה את ריפו זה זמין מ.


38
2017-09-03 16:25



אני משתמש yum 3.2.19 על CentOs 5.3 ו "מ ריפו" שורה אינו קיים. - lg.
כן ... אני בודק את זה על 3.2.21, אשר אין מידע זה בכל מקום. כאשר עשיתי את זה על הקופסה שלי כי יש 3.2.23, זה עבד. - Alex
עכשיו זה הפתרון הטוב ביותר, אבל לא ישים עבור RHEL / Centos 5.3. אני מקבל את הפתרון הזה, אבל אני מוכן לבחור תשובה אחרת אם יהיה רלוונטי גם עבור RHEL / Centos 5.3. - lg.
זה לא ללכת ב CentOS 5.5 או. - Mike Miller
"מ נציג" אינו זמין אפילו centos 5.8 - sepehr


בדרך לאיחור אבל (לפחות על Fedora 15) ניתן להשתמש yumdb עבור שאילתות דומות:

yumdb info 'python*'

ומה אני באמת צריך רשימת חבילות מ ריפו נתון (ים):

yumdb search from_repo 'my-*-repo'

20
2017-10-26 09:01



זה עובד גם על פדורה 14 - lg.
עובד על RHEL 6.2 - pixelbeat


אם כל השאר נכשל, אתה יכול לבדוק את yumdb באופן ידני. הוא ממוקם /var/lib/yum/yumdb והוא מכיל מידע מפורט על כל חבילה מותקנת. אתה תהיה מעוניין במיוחד from_repo. לדוגמה, עבור bind-utils חבילה:

# for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i`; done
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_data: 39f7840f93d3d76825a9e8da79cfe0366f7fad68f018a273477aee62cccfa3f4
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_type: sha256
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/command_line: install bind-utils
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo: updates
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_revision: 1397654451
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_timestamp: 1397654759
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/installed_by: 0
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/reason: user
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/releasever: 6

כדי לקבל רק את המידע הרצוי לך:

# cat /var/lib/yum/yumdb/b/*bind-utils*/from_repo
updates

גרסאות מאוחרות יותר יספקו נתונים רבים יותר; למשל ב- EL 7 את המראה המדויק ואת כתובת האתר שממנו החבילה הורדו מאוחסן כאן.


8
2018-05-25 04:19



+1. אבל זה אפילו טוב יותר לעשות משהו כמו: for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i` | grep -oP 'from_repo:\ \K.*'; done, אשר בדוגמה לעיל מחזירה: updates - הרבה יותר קריא! - Greg Dubicki
@GregDubicki הנקודה של הפקודה היה להראות יותר בהקשר של מה שקורה ואיך הדברים מאוחסנים. זה כנראה לא עשה את זה: אין צורך grep כל דבר כאן, ואתה יכול אפילו לשחרר את הלולאה. פשוט מאוד cat /var/lib/yum/yumdb/b/*bind-utils*/from_repo זה כל מה שאתה צריך. - Michael Hampton♦


rpm -qi packagename

יגיד לך את הספק ואת Packager


6
2018-02-09 14:48





אם החבילה הותקנה לאחרונה, תוכל לחפש ב- / var / cache / yum.

בתוך ספרייה זו, יש ספרייה עבור כל ריפו, ובאותו ספרייה חבילות. אז, היית עושה משהו כמו:

find /var/cache/yum -name [package-name]*

עם זאת, יש להפעיל את הקובץ השמור בקובץ /etc/yum.conf שלך:

cachedir=/var/cache/yum
keepcache=1

שים לב כי yum clean [packages|all] ינקה את ספריית המטמון.

אם ספריית המטמון ריקה, יש דרך חלופית. המידע שנקרא על ידי yum info [package] מגיע מ /var /cache/yum/[repo]/primary.xml.gz

ניתן לעיין בקובץ באמצעות הזנת:

gunzip -d -c /var/cache/yum/[repo]/primary.xml.gz | grep '<name>[package]'

עם זאת, על מכונות שבו yum info [package] אינו מציג את "מ -": כפי שצוין על ידי "theotherreceive", זה בגלל שזה לא בקובץ primary.xml, כך שלא תהיה דרך לאחזר את המידע. לכן, אם החבילה היא שתיים או יותר קבצים primary.xml, תצטרך לקבוע את עדיפות ריפו על המערכת.


4
2017-09-03 16:36



פתרון זה אולי אופציה (אני מצביע על זה), אבל אני מחפש תשובה מוחלטת. - lg.


כדי לראות מה מותקן מ repo epel: (צריך לעבוד תחת Centos 5.5) הערה, אם אין לך ריפו בשם epel, זה יהיה לירוק את כל דבר מותקן.

repoququery - apoid = epel-a xargs yum רשימה מותקנת - -


4
2018-04-07 21:20



נראה שזה עובד כל עוד אין חבילה מעודכנת במאגר. אז אתה צריך להפעיל עדכון yum רק לפני השימוש בו. - codewaggle


מבוסס על ומענה על ידי סווגאן
על RedHat ו CentOS אפשר לעשות

sudo grep -ir PACKAGE_NAME /var/cache/yum/

התוצאות צריכות להיראות כמו משהו

Binary file /var/cache/yum/REPOSITORY_NAME/primary.xml.gz.sqlite matches

איפה שם  הוא מאגר שבו החבילה שלך ניתן למצוא, וזה היה כנראה מותקן מן הראשון ברשימה (ראה repolist yum)


3
2018-05-30 00:19





האם מידע זה נלכד בכל מקום? החבילה אין את המידע הזה, יאם לא אכפת אחרי זה מוצא את החבילה. אתה יכול כנראה חתיכת אותו יחד על ידי חישוב מה יש repos את החבילה ולאחר מכן לקבוע איזה מהם יש עדיפות.


1
2017-09-03 16:19



פתרון זה אולי אפשרות (אני להצביע על זה), אבל רק עבור החבילה המותקנת לאחרונה, כי אני יכול לשנות את המאגר ואת העדיפות שלהם. - lg.


לא פתרון נהדר, אבל מצאתי כי רשימת yum זמין יראה לך איפה את הגרסה העדכנית ביותר של כל החבילה זמין, למשל:

yum רשימה זמין grepreamer grep

PackageKit-gstreamer-plugin.x86_64 0.3.16-1.fc10          updates               

blz-gstreamer.i386 4.30-2.fc10 עדכונים
gstreamer.i386 0.10.21-2.fc10 fedora
gstreamer-devel.i386 0.10.21-2.fc10 fedora
gstreamer-devel.x86_64 0.10.21-2.fc10 fedora
gstreamer-plugins-bad-devel.i386 0.10.9-1.fc10 ללא rpmfusion
gstreamer-plugins-bad-devel.x86_64 0.10.9-1.fc10 rpmfusion ללא תשלום

אז אתה יכול לעשות רשימה יאם זמין על החבילה שלך, ולאחר מכן להשוות את הגירסה המותקנת שלך באמצעות רשימת yum מותקן, ויש לי רעיון טוב של איזה ריפו זה בא אם הגירסאות להתאים.


1
2017-09-03 16:37



זה נכון רק החבילה עדיין לא מותקן. - lg.
אמנם זה לא עונה על השאלה OPS בדיוק, זה היה מאוד מועיל לי כי זה עובד ב Centoss 5.5 עם yum רק ולא utils אחרים, ואתה יכול: 1. הסר את החבילה ואז שאילתה כדי לראות איפה את ריפו ואז להתקין מחדש , או 2. שאילתה על מכונה אחרת ללא החבילה מותקנת. - lreeder