Chúng tôi có một máy chủ yum nội bộ có chứa một số repos (bản sao của repo RHEL, các chương trình được tạo trong nhà, v.v.). Các hệ thống nội bộ của chúng tôi được tường lửa từ internet, vì vậy chúng chỉ có thể sử dụng máy chủ nội bộ của chúng tôi.
Để kiểm tra các bản vá trước khi đưa chúng vào sản xuất, chúng tôi có một stable
repo được bật theo mặc định. Bất kỳ cập nhật nào được đưa vào -latest
repo. Khi chúng tôi vá các máy chủ, chúng tôi sẽ sử dụng -latest
-repo đó để xây dựng đường cơ sở mới và thử nghiệm nó trên một vài máy chủ. Sau khi thử nghiệm, chúng tôi làm cho đường cơ sở đó mới stable
. Các -latest
repos được tắt theo mặc định.
Một trong những repos được sử dụng cho một vài gói mà chúng tôi lấy từ epel, rpmforge, v.v. Chúng tôi có một tập lệnh chỉ đồng bộ hóa các gói chúng tôi muốn với bất kỳ phụ thuộc nào họ cần. Repo được xây dựng lại hàng đêm với commeepo sau khi các gói được đồng bộ hóa. Vì các gói này chưa được kiểm tra, chúng kết thúc trong int-optional-latest
repo thường bị vô hiệu hóa. Nếu một máy chủ cần một gói từ repo đó, chúng tôi sẽ cài đặt nó bằng cách sử dụng enable-repo=int-optional-latest
.
Hôm nay, một đồng nghiệp đã cố gắng cài đặt perl-Excel-Writer-XLSX trên máy chủ. Máy chủ không tìm thấy gói. Tôi đã thử xây dựng lại kho lưu trữ bằng cách sử dụng commepo và grepping các tập tin repodata để đảm bảo tập tin đã ở đó. Nó đã được. Tôi cũng xác minh rằng tệp tồn tại trong kho lưu trữ bằng cách sử dụng
repoquery -q --repoid=int-optional-latest -l perl-Excel-Writer-XLSX
Tôi cũng đã xóa bộ đệm siêu dữ liệu ở phía máy khách, sử dụng
sudo yum clean expire-cache
Mặc dù vậy, khách hàng vẫn tuyên bố rằng gói không tồn tại trên máy chủ.
Tôi không nghĩ vấn đề nằm ở phía máy chủ, bởi vì khi tôi thử thực hiện tìm kiếm từ một máy khác, nó đã tìm thấy gói. Tôi đã xác minh rằng các tệp repo là chính xác và tên yum.example.com
được phân giải thành cùng một địa chỉ IP trên cả hai máy chủ - tuy nhiên một trong số chúng có thể tìm thấy gói, và cái còn lại thì không thể.