Tải xuống TẤT CẢ các rpms cho một sản phẩm


8

Tôi có hai máy CentOS, một hộp 6.3 ( A ) và một máy CentOS 6.1 khác. ( B )

Hộp 6.3 có kết nối internet, hộp 6.1 không có kết nối internet.

Tôi muốn tải xuống TẤT CẢ các phụ thuộc của sản phẩm trên Hộp A, sau đó sao chép n Hộp B đó và cài đặt sản phẩm.

Tôi đã thử với

yum --downloadonly --downloaddir=*~/downloadrepo* -y install *product*`
cd *~/downloadrepo*
createrepo .

Sau đó, tôi đã vô hiệu hóa tất cả các repos (với --disablerepo), ngoại trừ repo của tôi và sản phẩm được cài đặt trên cùng một máy (Hộp A). Không có lỗi.

  • yum install *product*

Bây giờ khi tôi sao chép repo này vào Hộp B và cố gắng cài đặt với cùng một lệnh, nó bắt đầu cài đặt, nhưng sau đó đưa ra rất nhiều lỗi như dưới đây:

Lỗi: Thiếu phụ thuộc: libldap-2.3.so.0 () (64 bit) là cần thiết bởi gói php-ldap-5.1.6-27.el5_5.3.x86_64 (đã cài đặt)

Như có cách nào tôi có thể đạt được những gì tôi cần?

CẬP NHẬT

Khi tôi bắt đầu làm việc với tùy chọn được đề xuất bởi @rkosegi ( --releasever = phiên bản ), tôi đã nhận được một hộp mới có cùng phiên bản CentOS 6.1 ( C )

Tôi đã thử các lệnh được đề cập ở trên trên Hộp C và sao chép nó vào Hộp B. Vẫn thất bại. Lý do: mặc dù cả hai hộp đều là 6.1, nhưng chúng không giống nhau ( uname -r trả về các chuỗi khác nhau).

Yum không tải xuống phụ thuộc, nếu những cái đó đã được cài đặt. Vì vậy, repo của tôi không chứa một số phụ thuộc (bao gồm OpenJDK). Vì vậy, khi tôi cố gắng cài đặt trên Hộp B, nó không thành công.

Khá là bực bội !!!

Nhưng sau đó tôi tìm thấy lệnh ' repotrack ' ở đây .

cd ~/downloadrepo
repotrack -p . -a x86_64 product
createrepo .

Tôi đã nhận được nhiều tập tin hơn so với yum, hy vọng nó sẽ thực hiện được.

Tôi sẽ cập nhật, một khi tôi thử cài đặt.

CẬP NHẬT

Lệnh repotrack không làm việc cho tôi. Khi tôi cố cài đặt từ kho lưu trữ được tạo bằng 'repotrack', đã gặp các lỗi sau:

Error: Package: perl-CGI-3.51-127.el6.x86_64 (repo-local)
       Requires: perl = 4:5.10.1-127.el6
       Installed: 4:perl-5.10.1-119.el6_1.1.x86_64 (@anaconda-CentOS-201112102333.x86_64/6.2)
           perl = 4:5.10.1-119.el6_1.1
Error: Package: audit-libs-python-2.2-2.el6.x86_64 (repo-local)
       Requires: audit-libs = 2.2-2.el6
       Installed: audit-libs-2.1.3-3.el6.x86_64 (@anaconda-CentOS-201112102333.x86_64/6.2)
           audit-libs = 2.1.3-3.el6

Tôi đã thử xóa hai tệp này khỏi thư mục và xây dựng lại kho lưu trữ với 'c [epo'. Nó đưa ra một bộ lỗi khác.

Không chắc chắn tôi có những lựa chọn nào vào lúc này ...


Không "6.1" CentOS. nó chỉ là CentOS 6 cho đến thời điểm hiện tại khi RHEL 6.1 bị cắt, có lẽ với rất nhiều cập nhật kể từ đó.
vonbrand

Câu trả lời:


1

Nếu bạn phải làm điều này rất nhiều, bạn có thể muốn dành thời gian để thiết lập Spacewalk . Nó sẽ tự động tạo kho lưu trữ và điền vào đó với các gói thích hợp (hoặc, nếu bạn muốn, tất cả chúng). Chưa kể mọi thứ khác nó làm ...


0
yum --downloadonly --downloaddir=~/downloadrepo -y install product

Bạn cần hướng dẫn yum tải xuống từ kho lưu trữ cùng phiên bản với máy đích (6.1)

Đồng thời, đảm bảo rằng bạn cần đảm bảo rằng máy đó (6.3) sẽ thực hiện tải xuống không cài đặt một số phụ thuộc bị thiếu trên máy đích (6.1)


Điều đó sẽ không hoạt động, vì nó sẽ nhận được các gói cần thiết để cài đặt trên hệ thống đó . Đó rất có thể là một bộ rất khác so với bộ được yêu cầu trên một máy không nối mạng (có lẽ đã lỗi thời).
vonbrand

0

Nếu bạn không thể có được máy "sạch", bạn phải tìm kiếm thủ công các bộ phận bị thiếu bằng yum provideshoặc

bạn phải trải qua các rpms đã có trong repo của bạn và truy vấn các phụ thuộc của chúng : rpm -qp --requires RPM. Nếu danh sách đó xuất hiện một cái gì đó mới chưa phải là một phần của repo của bạn, bạn phải thêm nó.

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.