Loại trừ một repo cụ thể khỏi Cập nhật YUM


13

Tôi đang thực hiện cập nhật toàn hệ thống trên RHEL 5.5 và kho lưu trữ IUS EPEL đang bị lỗi phụ thuộc:

php53-mcrypt-5.3.3-4.ius.el5.x86_64 from installed has depsolving problems
--> Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-   5.3.3-4.ius.el5.x86_64 (installed)
Error: Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-5.3.3-4.ius.el5.x86_64 (installed)

Có cách nào để chạy cập nhật YUM đối với tất cả các kho lưu trữ khác mà bỏ qua repo IUS EPEL để bỏ qua vấn đề phụ thuộc này không?

Làm rõ

Tôi đang cố gắng cài đặt các bản cập nhật từ Redhat Network. Tôi không thể tìm thấy tên repo vì vậy tôi không thể làm một cái gì đó giống sudo yum --disablerepo=* --enablerepo=rhel updatenhư phiên bản của yum tôi đang sử dụng không hỗ trợ nhiều kho được liệt kê sau --disablerepo.

Cập nhật

Cách giải quyết tạm thời của tôi là chạy sudo yum --exclude=php53* update. Tôi tin rằng có một cách tốt hơn. Cách tốt hơn này bao gồm khắc phục sự cố thực tế, vì vậy tôi cũng đã gửi một lỗi với Dự án Cộng đồng IUS .

Cập nhật số 2

Hình như tôi tìm thấy vấn đề với sự phụ thuộc . Tôi vẫn nghĩ nên có một cách giải quyết khả thi.

Cảm ơn!


Tôi đã cập nhật câu trả lời của mình để xem xét làm rõ.
plasmid87

Câu trả lời:


21

Hãy thử chuyển đổi vô hiệu hóa repo:

--disablerepo=REPONAME

CẬP NHẬT

Để tìm tất cả các kho lưu trữ hiện tại "đã biết" (đã bật và tắt):

yum repolist all

Sau đó, để tìm kho lưu trữ nào mang lại cho bạn sự đau buồn cho gói trên, hãy thử:

yum list php53-mcrypt-5.3.3-4.ius.el5.x86_64 --showduplicates

Điều này sau đó sẽ hiển thị kho lưu trữ nào của bạn cung cấp gói trên (bạn cũng sẽ thấy "đã cài đặt" trong danh sách, để hiển thị các gói được cài đặt cục bộ).

Hãy thử lại công tắc vô hiệu hóa một lần nữa khi bạn biết kho lưu trữ bằng cách sử dụng công tắc vô hiệu hóa repo.

yum update --disablerepo=[from above]

Không thực hiện các bước trên để loại bỏ kho lưu trữ mà bạn muốn bỏ qua, hãy thử xem qua /etc/yum.repos.d/ , đây là vị trí mặc định của RHEL cho các định nghĩa kho lưu trữ. Khi đã ở trong thư mục này, hãy xác định tất cả các tệp kho lưu trữ cơ sở và không cập nhật của RHEL và bao gồm enable = 0 , ví dụ:

[repo]
enabled=0

Hi vọng điêu nay co ich.


Điều này có thể hoạt động nếu tôi có thể chỉ định nhiều kho lưu trữ. Tôi đã thử --disablerepo=epel --disablerepo=ius--disablerepo=epel,ius.
Robin

yum repolist allcho thấy chỉ các repos sau được bật: epel, ius và rhel-x86_64-server-5. --showduplicatesLệnh của bạn hiển thị gói đó được cài đặt từ repo ius. Vì vậy, tôi đã thử như sau sudo yum --disablerepo=* --enablerepo=rhel-x86_64-server-5 updatevà nó vẫn còn xuất hiện một lỗi phụ thuộc trên cùng một gói. Tôi cũng đã cố gắng vô hiệu hóa các repos bằng cách thay đổi enabled=0cài đặt trong /etc/yum.repos.d/
Robin

Tôi tưởng tượng rằng khi bạn cài đặt repo IUS, nó được cấu hình để được bật theo mặc định. Thay vào đó, hãy thử điều này: sudo yum update --disablerepo=iusgiả sử rằng tất cả các repos khác được bật theo mặc định. Nếu không, hãy thử chỉ sudo yum update --exclude=php53-mcrypt-5.3.3-4.ius.el5.x86_64để bỏ qua gói này hoàn toàn.
plasmid87

Cả hai tùy chọn này đều không hoạt động. Tôi đang thiếu một cái gì đó.
Robin

Tôi chỉ có thể tưởng tượng rằng một cái gì đó khác cần gói đó được nâng cấp như là một phần của quá trình cập nhật. Nếu bạn chạy, sudo yum deplist php53-mcrypt-5.3.3-4.ius.el5.x86_64nó sẽ hiển thị cho bạn tất cả các phụ thuộc và nhà cung cấp cho gói cụ thể đó. Theo kinh nghiệm của tôi với các gói PHP và RHEL, đây là một vấn đề phổ biến. Không muốn đi chệch khỏi vấn đề trong tay, nhưng tôi đã tìm thấy Remi để cung cấp các gói tốt nhất cho PHP, tôi chưa bao giờ gặp vấn đề phụ thuộc với PHP sau khi chuyển sang repos của họ.
plasmid87

1

cách dễ nhất để làm điều này là bằng cách bình luận linux với repo không mong muốn của bạn trong /etc/yum.repos.d/


1

Bạn có thể vô hiệu hóa nhiều kho lưu trữ trên dòng lệnh yum:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 --disablerepo=myrepo3

Tuy nhiên, nếu bạn làm điều đó, bạn phải kích hoạt rõ ràng repo bạn muốn:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 \
           --disablerepo=myrepo3 --enablerepo=TheRepoIWant

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.