ฉันจะได้รับ yum เพื่อดูการอัปเดตของ repo ในพื้นที่โดยไม่ต้องล้างแคชได้อย่างไร


19

ฉันได้ตั้งค่าที่เก็บ yum แบบโลคัลซึ่งฉันใช้เพื่อติดตั้งบิลด์ทดสอบ สำหรับวัตถุประสงค์ในการทดสอบแพ็คเกจของฉันได้รับการกำหนดเวอร์ชันโดย<svn version number>.<date>.<time>(เช่น12345.20110908.150404

ปัญหาคือเมื่อฉันสร้าง RPM ใหม่ให้คัดลอกไปยังไดเรกทอรีที่เก็บและเรียกใช้createrepo $REPO_DIRyum ไม่เห็น RPM ใหม่ว่าพร้อมใช้งาน

$ cd $REPO_DIR
$ ls -1
repodata
package-12345.20110908.150404-1.x86_64.rpm
package-12345.20110908.174329-1.x86_64.rpm

$ createrepo .
# ...snip...

$ rpm -q package
package-12345.20110908.150404-1.x86_64

$ yum list --showduplicates package
Installed Packages
package.x86_64    12345.20110908.150404-1    @repo
Available Packages
package.x86_64    12345.20110908.150404-1    repo

ฉันสามารถดูการปรับปรุงและคว้าพวกเขาหากฉันเรียกใช้yum clean allแล้วนำเมทาดาทากลับมาอีกครั้ง แต่ฉันคิดว่านี่หมายถึงฉันต้องทำอย่างอื่นจาก repo เพราะฉันไม่ต้องทำเช่นนั้นสำหรับ repos yum อื่น ๆ

ฉันจะต้องตั้งค่าที่เก็บข้อมูลในเครื่องของฉันเพื่อที่ฉันจะต้องเรียกใช้yum updateจากไคลเอนต์โดยไม่ต้องล้างแคช yum ของฉันได้อย่างไร

คำตอบ:


24

คุณสามารถเรียกใช้ "yum clean expire-cache" ซึ่งเป็นวิธีที่มีประสิทธิภาพมากขึ้นในการบอก yum เพื่อตรวจสอบ repos ... สิ่งอื่น ๆ ที่ต้องทำคือเปลี่ยนค่า metadata_expire สำหรับธุรกรรมซื้อคืนในพื้นที่ (ดู man yum.conf)


มีวิธีหมดอายุแคชที่เก็บเฉพาะหรือไม่?
myroslav

1
วิธีง่ายๆในการทำเช่นนั้นคือ --disablerepo = * --enablerepo = myrepo, otherrepo ... แม้ว่าคุณจะสามารถสร้างนามแฝงได้ถ้ามันเป็นสิ่งที่คุณจะทำมาก
James Antill

11

ลองเพิ่มบรรทัดต่อไปนี้ใน /etc/yum.conf กับลูกค้า Yum:

metadata_expire = 1m

คำสั่งต่อไปนี้จะแสดงข้อมูลเพิ่มเติมให้คุณ:

ผู้ชาย yum.conf

FYI CentOS 5 มีพารามิเตอร์ที่ใส่ความคิดเห็นไว้ CentOS 6.2 มี 90m สำหรับค่า


นี่ค่อนข้างเก่า แต่ฉันเพิ่งพบเจอ คุณสามารถตั้งค่านี้สำหรับที่เก็บเดียวโดยแก้ไขไฟล์ /etc/yum.repos.d/my.repo
jwm

3

yum clean metadata ทำความสะอาดเฉพาะชื่อแคชและเช่นนั้นหลังจากที่ yum โหลดแนวคิดของสิ่งที่มีอยู่


0

เพิ่งมีปัญหาเดียวกันลอง:

ยำทำความสะอาดทั้งหมด


1
โปรดอ่านคำถามอย่างระมัดระวัง ฉันเชื่อว่าเขากำลังมองหาวิธีอื่นที่ไม่ต้องล้างแคช
slm

พระเจ้าคุณช่างถูกต้อง: |
jobwat

0

yum's --enablerepo = localrpmrepo เป็นตัวเลือกที่คุณต้องการ ดังนั้น

yum --enablerepo=localrpmrepo clean metadata

แทนที่ localrpmrepo ด้วยชื่อ repos ของคุณ


ไม่ในกรณีนี้ปัญหาแน่นอนว่ามันคิดว่าแคชยังคงใช้ได้และไม่ตรวจสอบการอัปเดต
Falcon Momot

ฉันสามารถอัปเดตที่เก็บเพียงอันเดียวโดยใช้คำสั่งนี้และอีกอันหนึ่ง: yum --disablerepo=* --enablerepo=epel clean metadata -q; yum check-update --disablrepo=* --enablerepo=epel -q. ฉันจะทำฟังก์ชั่นทุบตีและทำมันให้สำเร็จ!
bgStack15
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.