Tôi đang tự hỏi những gì sudo apt-get update
không?
Nó cập nhật cái gì?
Tôi đang tự hỏi những gì sudo apt-get update
không?
Nó cập nhật cái gì?
Câu trả lời:
Tóm lại, apt-get update
không thực sự cài đặt các phiên bản phần mềm mới. Thay vào đó, nó cập nhật danh sách gói để nâng cấp cho các gói cần nâng cấp, cũng như các gói mới vừa đến kho.
apt-get update
tải xuống danh sách gói từ kho lưu trữ và "cập nhật" chúng để có được thông tin về các phiên bản mới nhất của gói và phụ thuộc của chúng. Nó sẽ làm điều này cho tất cả các kho lưu trữ và PPA. Từ http://linux.die.net/man/8/apt-get :
Được sử dụng để đồng bộ hóa lại các tệp chỉ mục gói từ các nguồn của chúng. Các chỉ mục của các gói có sẵn được tìm nạp từ (các) vị trí được chỉ định trong
/etc/apt/sources.list
(5). Một bản cập nhật phải luôn được thực hiện trước khi nâng cấp hoặc nâng cấp.
apt-get upgrade
sẽ tìm nạp các phiên bản mới của các gói hiện có trên máy nếu APT biết về các phiên bản mới này apt-get update
.
Từ http://linux.die.net/man/8/apt-get :
Được sử dụng để cài đặt các phiên bản mới nhất của tất cả các gói hiện được cài đặt trên hệ thống từ các nguồn được liệt kê trong
/etc/apt/sources.list
(5). Các gói hiện được cài đặt với các phiên bản mới có sẵn được lấy và nâng cấp; trong mọi trường hợp hiện tại các gói đã được cài đặt được gỡ bỏ, cũng không phải là các gói chưa được cài đặt được lấy và cài đặt. Các phiên bản mới của các gói hiện được cài đặt không thể nâng cấp mà không thay đổi trạng thái cài đặt của gói khác sẽ được để lại ở phiên bản hiện tại của chúng. [Nhấn mạnh mỏ] Một bản cập nhật phải được thực hiện trước tiên để apt-get biết rằng các phiên bản mới của gói có sẵn.
apt-get dist-upgrade
sẽ thực hiện cùng một công việc được thực hiện apt-get upgrade
, cộng với nó cũng sẽ xử lý thông minh các phụ thuộc một cách thông minh, do đó, nó có thể loại bỏ các gói lỗi thời hoặc thêm các gói mới. Xem ở đây: "nâng cấp" là gì và tại sao nó nâng cấp nhiều hơn "nâng cấp"?
Từ http://linux.die.net/man/8/apt-get :
Ngoài việc thực hiện chức năng nâng cấp, tùy chọn này còn xử lý thông minh việc thay đổi phụ thuộc với các phiên bản mới của gói; apt-get có một hệ thống giải quyết xung đột "thông minh" và nó sẽ cố gắng nâng cấp các gói quan trọng nhất với chi phí của các gói ít quan trọng hơn, nếu cần thiết. Tệp
/etc/apt/sources.list
(5) chứa danh sách các vị trí để truy xuất tệp gói mong muốn. Xem thêm apt_preferences (5) để biết cơ chế vượt quá các cài đặt chung cho các gói riêng lẻ.
Bạn có thể kết hợp các lệnh với &&
như sau:
sudo apt-get update && sudo apt-get install foo bar baz foo-dev foo-dbg
hoặc để có được các phiên bản mới nhất có thể theo yêu cầu phiên bản của các phụ thuộc:
sudo apt-get update && sudo apt-get dist-upgrade
Bạn cần sudo
cả hai lần, nhưng sudo
theo mặc định không nhắc bạn trong vòng 5 phút hoặc hơn kể từ lần sudo
thao tác cuối cùng , bạn sẽ được nhắc nhập mật khẩu chỉ một lần (hoặc hoàn toàn không).
apt-get update
phải mất một thời gian, internet ở đây vẫn còn sơ khai.
Một tìm kiếm Google có thể cung cấp cho bạn định nghĩa cho hầu hết mọi lệnh thiết bị đầu cuối, như có thể - trợ giúp trong thiết bị đầu cuối. Ví dụ,
apt-get --help
sudo apt-get update
về cơ bản có ba phần:
sudo
thực hiện lệnh sau với khả năng siêu người dùng (root). Nhiều hành động yêu cầu sửa đổi tệp hệ thống hoặc cài đặt ứng dụng yêu cầu thêm quyền để thực hiện.
apt-get
là một công cụ dòng lệnh mà Ubuntu sử dụng để cài đặt, gỡ bỏ và quản lý các gói phần mềm
update
là một tùy chọn cho chương trình apt-get để sử dụng để cập nhật danh sách gói từ máy chủ trên internet. Danh sách gói cung cấp tiện ích apt-get với thông tin quan trọng về các gói phần mềm mà bạn có thể cài đặt bằng apt-get. apt-get sử dụng các danh sách này để xác định phần mềm nào sẽ được cài đặt khi được lệnh cài đặt. Ví dụ
sudo apt-get install guake
sẽ cài đặt thiết bị đầu cuối Guake vì nó hiện được liệt kê trong danh sách phần mềm cục bộ của máy tính của tôi. Tuy nhiên, đây có thể không phải là phiên bản phù hợp hoặc nếu chương trình mới, nó có thể không có sẵn. Vì vậy, khi cài đặt phần mềm với apt-get, bạn thường gõ
sudo apt-get update
sudo apt-get install <package>
đảm bảo rằng apt-get biết để cài đặt phiên bản mới nhất của gói.
Một nguồn hữu ích khác cho thông tin là help.ubuntu.com
trang web. Ví dụ: nếu bạn đã tìm kiếm trang web đó, apt-get
bạn sẽ tìm thấy AptGet / Howto là một trong những kết quả.
&&
giữa họ làsudo apt-get update&&sudo apt-get install foo bar baz
&&
có nghĩa là lệnh thứ hai sẽ chỉ chạy nếu lệnh đầu tiên thành công. Nếu bạn không quan tâm đến sự thành công của lệnh đầu tiên, ;
thay vào đó hãy sử dụng .
Chạy sudo apt-get update
đơn giản là đảm bảo danh sách các gói của bạn từ tất cả các kho lưu trữ và PPA được cập nhật. Nếu bạn không chạy lệnh này, bạn có thể nhận được các phiên bản cũ hơn của các gói khác nhau mà bạn đang cài đặt hoặc tệ hơn là các vấn đề phụ thuộc. Nếu bạn vừa thêm PPA và chưa cập nhật, không có gì từ PPA sẽ hoạt động cả vì bạn không có danh sách gói từ PPA hoặc kho lưu trữ đó.
Tóm lại: Nó được đánh giá cao đề nghị để chạy sudo apt-get update
trước khi cài đặt, nhưng nó có thể được bỏ qua nếu bạn đang thực sự ép cho thời gian , trừ khi bạn đã thay đổi kho hoặc PPA nhật kể từ lần apt-get update
.
Nó cập nhật danh sách phần mềm có sẵn trên máy tính của bạn.
Máy tính của bạn có một danh sách (như một danh mục) có chứa tất cả các phần mềm có sẵn mà các máy chủ Ubuntu có sẵn. Nhưng phần mềm và phiên bản có sẵn có thể thay đổi, do đó, "bản cập nhật" sẽ tấn công máy chủ và xem phần mềm nào có sẵn để cập nhật danh sách địa phương (hoặc danh mục).
Lưu ý rằng update
khác với upgrade
. Cập nhật, như đã đề cập ở trên, sẽ tìm nạp phần mềm có sẵn và cập nhật danh sách trong khi upgrade
sẽ cài đặt các phiên bản phần mềm mới được cài đặt trên máy tính của bạn (cập nhật phần mềm thực tế).
Để thực sự nâng cấp phần mềm của bạn (không phải "cập nhật" danh sách), bạn thực hiện lệnh
sudo apt-get upgrade
thường được thực hiện sau khi "cập nhật".
sudo apt-get install
vậy? Cài đặt các gói cụ thể thay vì nâng cấp chung?
Bạn cần chạy apt-get update
một lần trước khi cài đặt các gói mới vì điều này cập nhật thông tin kho lưu trữ cục bộ. Nếu bạn sắp cài đặt nhiều gói ngay sau đó, bạn không cần phải chạy apt-get update
. Ngoài ra, bạn có thể cài đặt nhiều gói cùng một lúc nếu bạn nhập
sudo apt-get install package1 package2...
Khi bạn cài đặt các gói từ dòng lệnh bằng sudo apt-get install ...
(hoặc sudo aptitude install ...
) hoặc khi bạn nâng cấp chúng từ dòng lệnh (có upgrade
hoặc dist-upgrade
thay vì install
), thông tin sau được lấy từ cấu hình hệ thống cục bộ của bạn chứ không phải từ Internet:
những gói nào có sẵn
phiên bản nào của chúng có sẵn
nơi các gói có sẵn nên được lấy từ
Chạy sudo apt-get update
(hoặc sudo aptitude update
) cập nhật điều này trên hệ thống địa phương của bạn. Đây là bước thực sự lấy thông tin về những gói nào có thể được cài đặt, bao gồm những bản cập nhật nào cho các gói gói hiện đang có sẵn , từ các nguồn Internet.
Khi bạn cài đặt các gói với giao diện GUI (Trình quản lý cập nhật, Trung tâm phần mềm hoặc Trình quản lý gói Synaptic), công việc sudo apt-get update
sẽ được thực hiện tự động. Khi bạn cài đặt các gói từ dòng lệnh, thì không, và bạn nên luôn luôn tự làm điều này trừ khi bạn đã thực hiện rất gần đây .
Vì thông tin về các phiên bản cập nhật của gói có sẵn có được bằng cách chạy sudo apt-get update
(hoặc sudo aptitude update
), nên chạy gói này trước khi cài đặt bất kỳ gói nào và cần chạy nó để cài đặt các bản cập nhật mới nhất, ngay cả khi bạn chưa thêm hoặc xóa bất kỳ Phần mềm nào Nguồn (chẳng hạn như PPA) .
Xin lưu ý rằng nếu bạn sẽ thực hiện nhiều hoạt động quản lý gói cùng một lúc, bạn không cần phải chạy sudo apt-get update
trước mỗi hoạt động. Chỉ khi thông tin chưa được cập nhật trong một thời gian, bạn nên đảm bảo chạy nó.
Như Eliah Kagan đã đề cập ở trên, bạn sẽ mong đợi rằng một ứng dụng GUI sẽ chạy apt-get update
trước apt-get install
/ apt-get upgrade
nhưng tôi vừa phát hiện ra một lỗi thú vị 404, trên một máy VM bảo mật tương đối mới, khiến tôi phải bối rối trong một phút.
Từ dòng lệnh, tôi đã chạy apt-get update
và sau đó thử lại lệnh Công cụ hệ thống / Cập nhật phần mềm và lần này nó chạy không có lỗi 404.
Vì vậy, tôi đoán bạn không thể luôn cho rằng nó apt-get update
được chạy từ các ứng dụng GUI ...
apt-get
so với kiểm tra tự động được thực hiện bằng cách chạy Trình cập nhật phần mềm / Trình quản lý cập nhật? Bạn có sử dụng proxy HTTP không? Và bạn có thể làm cho nó xảy ra một lần nữa, hoặc nó đã xảy ra chỉ một lần? Nếu đó là một sự bất thường bị cô lập, tôi tự hỏi liệu có thể vấn đề là do cấu hình sai máy chủ tạm thời. Bạn dùng gương gì? Với nhiều thông tin hơn, có lẽ tôi có thể cải thiện câu trả lời của mình. (Btw, đây có phải là một câu trả lời riêng biệt hay nên được chuyển đổi thành một nhận xét?)
Như đã nói bởi nhiều người trước tôi điều này cập nhật kho lưu trữ cục bộ của bạn (danh sách gói).
Bạn có thể gặp rắc rối nếu bạn cố gắng cài đặt
apt-get install foobar
và foobar hoặc một phụ thuộc không có phiên bản mới nhất của họ trong kho lưu trữ. Điều này có thể đặc biệt khó khăn nếu cài đặt tệp .deb bằng tay hoặc ppa từ bên thứ 3.
Về cơ bản nó làm cho chắc chắn danh sách của bạn phù hợp với tổng thể danh sách.
Hãy xem xét ví dụ về cài đặt trình phát phương tiện VLC trên Ubuntu:
sudo apt-get update
Nó sẽ kiểm tra các kho lưu trữ để cập nhật.
Trong khi
sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc
sẽ cài đặt trình phát phương tiện VLC từ kho lưu trữ mà chúng tôi đã tìm kiếm.
Nếu bạn đã đăng nhập với tư cách người dùng root (quản trị viên), bạn không phải sử dụng sudo
, vì bạn đã có đặc quyền siêu người dùng.
sudo apt-get update
lệnh bất cứ khi nào chúng ta cài đặt các gói không? Điều gì bất lợi nếu chúng ta không làm như vậy?