Làm cách nào tôi có thể hướng dẫn yum cài đặt phiên bản cụ thể của gói X?


226

Nếu có hai (hoặc nhiều) phiên bản RPM nhất định có sẵn trong kho YUM, làm cách nào tôi có thể hướng dẫn yumcài đặt phiên bản tôi muốn?

Nhìn qua dịch vụ xây dựng Koji tôi nhận thấy có một số phiên bản.

    ss # 1

Câu trả lời:


310

Để xem phiên bản cụ thể nào có sẵn cho bạn thông qua yumbạn có thể sử dụng công --showduplicatestắc. Nó cung cấp cho bạn một danh sách như "gói tên. Phiên bản kiến ​​trúc":

$ yum --showduplicates list httpd | expand
Loaded plugins: fastestmirror, langpacks, refresh-packagekit
Loading mirror speeds from cached hostfile
 * fedora: mirror.steadfast.net

Available Packages
httpd.x86_64                        2.4.6-6.fc20                         fedora 
httpd.x86_64                        2.4.10-1.fc20                        updates

Theo như cài đặt một phiên bản cụ thể? Bạn có thể nối thông tin phiên bản vào tên của gói, xóa tên kiến ​​trúc, như vậy:

$ sudo yum install <package name>-<version info>

Ví dụ: trong trường hợp này nếu tôi muốn cài đặt phiên bản cũ hơn, 2.4.6-6 tôi sẽ làm như sau:

$ sudo yum install httpd-2.4.6-6

Bạn cũng có thể bao gồm thông tin phát hành khi chỉ định gói. Trong trường hợp này vì tôi đang giao dịch với Fedora 20 (F20), thông tin phát hành sẽ là "fc20" và thông tin kiến ​​trúc cũng vậy.

$ sudo yum install httpd-2.4.6-6.fc20
$ sudo yum install httpd-2.4.6-6.fc20.x86_64

phục hồi

Nếu bạn không chắc chắn rằng mình đang xây dựng các đối số đúng, bạn cũng có thể tham khảo ý kiến repoquery.

$ sudo yum install yum-utils  # (to get `repoquery`)
$ repoquery --show-duplicates httpd-2.4*
httpd-0:2.4.6-6.fc20.x86_64
httpd-0:2.4.10-1.fc20.x86_64

tải về và cài đặt

Bạn cũng có thể sử dụng một trong các tùy chọn sau để tải xuống một RPM cụ thể từ web và sau đó sử dụng yumđể cài đặt nó.

$ yum --downloadonly <package>
-or-
$ yumdownloader <package>

Và sau đó cài đặt nó như vậy:

$ sudo yum localinstall <path to rpm>

Nếu tôi muốn tải xuống mọi thứ mà gói X yêu cầu thì sao?

$ yumdownloader --resolve <package>

Thí dụ

$ yumdownloader --resolve vim-X11
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
--> Running transaction check
---> Package vim-X11.x86_64 2:7.3.315-1.fc14 set to be reinstalled
--> Finished Dependency Resolution
vim-X11-7.3.315-1.fc14.x86_64.rpm                              | 1.1 MB     00:01

Lưu ý rằng nó đang thực hiện kiểm tra phụ thuộc và sau đó tải xuống các phần còn thiếu. Xem câu trả lời của tôi bao gồm nó chi tiết hơn ở đây: Làm cách nào để tải xuống một tệp từ repo và cài đặt nó sau khi kết nối internet? .

Người giới thiệu


1
Tôi không nghĩ rằng nó hoạt động cho các gói giữa phiên bản mới nhất được đặt @updatesvà phiên bản ban đầu cho hệ điều hành được đặt @fedora. Ví dụ: nếu bạn cố gắng cài đặt httpd-2.4.8-1, yumsẽ nói gói không có sẵn.
Câu hỏi tràn vào

@QuestionOverflow - không theo dõi. Phiên bản đó không hiển thị là có sẵn trong repo.
slm

1
Hãy để tôi thử lại với một ví dụ thực tế từ nhật ký yum của tôi. python-libs-2.7.5-12.fc20.x86_64đã từng được cài đặt trên máy tính của tôi nhưng đã được thay thế. Giả sử bây giờ tôi muốn cài đặt gói cụ thể này, yumdownloader python-libs-2.7.5-12*sẽ nói No Match for argument python-libs-2.7.5-12* Nothing to download. Những gì tôi đang cố gắng nói là một khi gói mới đến, gói cũ sẽ không còn có thể truy cập được từ yum. Bạn chỉ có thể cài đặt gói mới nhất hoặc phiên bản ban đầu, nhưng không thể có phiên bản ở giữa.
Câu hỏi tràn

2
@QuestionOverflow - Trong kịch bản đó tôi nghĩ bạn phải sử dụng yum downgrade ...nếu gói đã được cài đặt và bạn đang cố gắng quay lại gói đó sau. Trong QI của tôi, tôi đã cố gắng chỉ ra cách người ta sẽ chọn một phiên bản cụ thể của gói chưa được cài đặt. docs.fedoraproject.org/en-US/Fedora/14/html/ Khăn
slm

Không, nó không hoạt động ngay cả khi nâng cấp lên một gói cụ thể. Tôi đã thử nghiệm điều này với một cài đặt mới chỉ vài ngày trước. Bạn chỉ có thể cập nhật lên gói mới nhất chứ không phải bất kỳ phiên bản nào bạn muốn.
Câu hỏi tràn

6

Một tùy chọn khác, bạn có thể tải xuống rpmtệp sau đó hướng dẫn yumthực hiện localinstall:

yum localinstall /path/to/package.rpm

Một nơi tốt để có được các gói bạn cần là rpmfind.com và tìm kiếm tên gói.


Có URL nào chứa nhiều nhất nếu không phải tất cả các phiên bản của tệp vòng / phút không?
Câu hỏi tràn vào

@QuestionOverflow: rpmfind.net
cuonglm

4
Cũng có yum --downloadonly <package>, theo sau yum localinstall <path to package>, quá. Bạn cũng có thể sử dụng các tiện ích yumdownloader <package>quá.
slm

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.