Câu hỏi Làm thế nào để cài đặt phiên bản cụ thể của một số gói? [bản sao]


Câu hỏi này đã có câu trả lời ở đây:

Câu hỏi của tôi được chia thành hai phần:

  1. Làm cách nào để biết phiên bản của gói đã cài đặt?
  2. Cách cài đặt phiên bản gói cụ thể?

159
2018-03-03 08:57


gốc


Vui lòng không bỏ phiếu để xóa bài đăng này. Nó rất hữu ích như một biển hiệu. Các bản sao phục vụ để hướng dẫn người khác đến đúng Q & A. - terdon♦


Các câu trả lời:


Làm cách nào để biết phiên bản của gói đã cài đặt?

apt-cache policy <package name>

Lệnh trên sẽ hiển thị phiên bản gói đã cài đặt và tất cả các phiên bản sẵn có trong kho theo phiên bản Ubuntu mà bạn đang chạy. Nó không hiển thị phiên bản gói dành cho phiên bản Ubuntu khác (không phải của bạn).

Thí dụ:

$ apt-cache policy gparted
gparted:
  Installed: 0.16.1-1
  Candidate: 0.16.1-1
  Version table:
 *** 0.16.1-1 0
        500 http://ubuntu.inode.at/ubuntu/ saucy/main amd64 Packages
        100 /var/lib/dpkg/status

Vì vậy, phiên bản được cài đặt được ghép là 0.16.1-1.

Cách cài đặt phiên bản gói cụ thể?

sudo apt-get install <package name>=<version>

Thí dụ:

$ sudo apt-get install gparted=0.16.1-1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gparted is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 265 not upgraded.

226
2018-03-03 09:10



Bạn có thể vui lòng cung cấp thêm chi tiết cho lệnh thứ hai không? Có bất kỳ hạn chế nào không? Ví dụ, có thể ai đó trên 12.04 cài đặt một phiên bản của một gói có sẵn trong 13.10? - DK Bose
Trong aptitude nhấn Enter trên tên gói hiển thị thông tin về gói và ở dưới cùng của màn hình này có danh sách các phiên bản có sẵn. - karatedog
Việc sử dụng tương tự của apt-cyg làm việc trong Cygwin: apt-cyg install package=version? - Danijel
Trong mọi trường hợp tôi đã từng thử điều này luôn luôn gặp lỗi The following packages have unmet dependencies:, theo sau là danh sách các gói. Bất kỳ cách nào để làm cho nó giải quyết tự động? - Hubro
Xin lưu ý rằng nó rất có thể sẽ thất bại, bởi vì thường chỉ có 1 hoặc 2 phiên bản của gói có sẵn trong kho lưu trữ. Nếu bạn muốn có một phiên bản khác với phiên bản hiện tại được thiết kế cho bản phân phối của mình, bạn có thể cần phải tải xuống và cài đặt với sudo dkpg -i <package-file>. Lỗi phụ thuộc cần phải được giải quyết bằng cách tải xuống và cài đặt (cũng với dkpg) tất cả các gói bị thiếu (điều này có thể mất nhiều lần lặp lại). Hoặc bạn có thể tải xuống mã nguồn chương trình, biên dịch và cài đặt nó (điều này cũng yêu cầu độ phân giải phụ thuộc thủ công). - nuoritoveri


Không có cách tổng quát nào để kiểm tra phiên bản của các gói đã cài đặt, nhưng hầu hết chúng có thể được kiểm tra bằng cách sử dụng lệnh:

command -v 

ví dụ để biết phiên bản của apache2:

apache2 -v

Nhưng điều này có thể không hoạt động với các gói khác, vì vậy cách tốt nhất là tìm kiếm hướng dẫn sử dụng.

man XXX

và tìm kiếm tùy chọn hiển thị phiên bản.

Để cài đặt phiên bản cụ thể của gói:

sudo apt-get install package=version

Ví dụ:

sudo apt-get install apache2=2.3.35-4ubuntu1

4
2018-03-03 09:03



chúng tôi cũng có thể kiểm tra phiên bản của gói đã cài đặt bằng cách sử dụng tên gói dpkg -l - Nischay
Bạn tìm / theo dõi meta ở đâu 2.3.35-4ubuntu1 khi chỉ định phiên bản? - Erutan409
@ Erutan409 Nhận xét trên của bạn là cách bạn có thể làm điều đó. - user124384
@ Erutan409 - sử dụng apt-cache madison packagename - nó sẽ hiển thị tất cả các phiên bản có thể được nhìn thấy bởi bất kỳ repos nào bạn đã cài đặt / cấu hình (bao gồm PPA) - ivanivan