Hãy phá vỡ nó.
Trước hết, một số lưu ý về cách apt-get install
(và hầu hết các apt-get
đối số khác cũng vậy) hoạt động:
Bạn có thể nhập nhiều tên gói:
sudo apt-get install foobar spamegg
Tên gói thực sự là man 7 regex
các mẫu Biểu thức chính quy mở rộng (ERE) (Kiểm tra ) để tên gói foo.bar
có nghĩa là bất kỳ tên gói nào có chuỗi con bắt đầu foo
và kết thúc bar
bằng bất kỳ ký tự đơn nào giữa foo
và bar
. Có khả năng f.*r
có nghĩa là bất kỳ tên gói nào có chứa một chuỗi con có f
và r
với bất kỳ số lượng ký tự nào, tức là bất cứ thứ gì ở giữa. Để thực hiện khớp toàn bộ tên gói, hãy sử dụng mã thông báo bắt đầu và kết thúc, vd ^foo.bar$
. Nếu bạn muốn bất kỳ mã thông báo Regex nào được xử lý theo nghĩa đen thì bạn cần phải thoát mã thông báo với \
ví dụ: để xử lý theo foo.bar
nghĩa đen, bạn cần:
sudo apt-get install 'foo\.bar'
Ở đây, trích dẫn duy nhất là để ngăn việc diễn giải shell của mẫu dưới dạng mẫu hình cầu, không cần thiết trong trường hợp này nhưng sẽ là cần thiết, ví dụ cho mẫu foo.*bar
nếu bạn có một tệp trong thư mục hiện tại có tên, vd foo.bar
.
Có một lưu ý về việc xem xét tên gói. Nếu có bất kỳ gói nào khớp với mẫu, mẫu sẽ được xử lý theo nghĩa đen và không có giải thích Regex nào được thực hiện. Ví dụ: đối với mẫu gói g++
, nó sẽ khớp với gói theo g++
nghĩa đen không phân biệt mã thông báo Regex +
. Nếu không có gói có tên g++
trong kho được xác định, nó sẽ được coi là mẫu ERE.
Bây giờ, bạn đã đưa ra lệnh:
sudo apt-get install g++ 5.0
Điều này có nghĩa là:
Bạn muốn cài đặt hai mẫu được cung cấp gói g++
và5.0
g++
khớp với gói meta theo nghĩa đen g++
như đã đề cập ở trên
Phần còn lại 5.0
, có mã thông báo Regex, .
tức là bất kỳ ký tự đơn nào. Vì vậy, điều này sẽ phù hợp với bất kỳ tên gói có chứa 5<any_character>0
. Vì vậy, tất cả các gói có khớp đã được chọn để cài đặt và có lẽ virtualbox-5.0
cũng đã được chọn trong quy trình.
Có lẽ bạn muốn cài đặt g++
phiên bản 5
, do đó, làm như sau sẽ làm ( đã được đề cập trong câu trả lời này ); Gói meta g++-5
, sẽ đề cập đến gói phát hành nhỏ mới nhất có sẵn của g++
phiên bản 5:
sudo apt-get install g++-5
Để tìm kiếm bất kỳ gói nào, trong kho được cấu hình, hãy sử dụng apt-cache
(sử dụng ERE như apt-get
):
apt-cache search 'g\+\+-[0-9]+'
Nếu bạn không muốn Regex-ify, hãy sử dụng less
để cuộn xuống danh sách khá lớn hơn:
apt-cache search g++ | less
Ngoài ra trước khi cài đặt bất cứ thứ gì bạn không chắc chắn, đừng sử dụng tùy chọn -y
( --assume-yes
) và kiểm tra trước với -s
( --simulate
/ --dry-run
):
sudo apt-get install --dry-run foobar
apt-get
sẽ yêu cầu xác nhận từ người dùng, vì vậy bạn chỉ cần chènn
và tránh cài đặt VirtualBox ... Ngoài ra, kho lưu trữ của Ubuntu cũng được kiểm tra, do đó không nên có bất kỳ gói phần mềm độc hại nào bạn có thể cài đặt ngay từ đầu. Nếu bạn thêm PPA ngẫu nhiên thì điều này có thể xảy ra nhưng đó là vì bạn đã bảo Ubuntu cài đặt các ứng dụng từ một nguồn không đáng tin cậy.