Giữ MixEngine luôn mới
Đây là tài liệu hướng dẫn dùng MixEngine qua dòng lệnh
mix. Nếu bạn muốn thao tác bằng giao diện đồ họa cho dễ hơn, hãy tải ứng dụng MixDB tại https://lab.mixnz.com/#mixdb. MixDB làm việc trên cùng một MixEngine, nên mọi khái niệm trong cẩm nang này vẫn áp dụng.
mix self-update --check
mix self-update
--check in ra bản có sẵn, gồm phiên bản, dung lượng và những gì đã thay đổi, và không cài gì.
Không có --check thì cũng hiện đúng thông tin đó, rồi hỏi bạn có cập nhật không.
Cập nhật không bao giờ âm thầm
Cập nhật sẽ khởi động lại các service bạn đang chạy. Vì thế đó là việc bạn chọn, không phải việc
xảy ra với bạn giữa lúc đang làm, nên không có gì được cài mà không hỏi. Daemon có kiểm tra
lặng lẽ, lúc khởi động và mỗi ngày một lần, để mix status báo được cho bạn là có bản mới. Cả hai
lần kiểm tra đều thất bại trong im lặng nếu không có mạng: máy không có mạng không phải máy có vấn
đề.
--yes trả lời trước câu hỏi, dành cho script chạy khi không có ai ở bàn phím.
Chuyện gì xảy ra khi bạn đồng ý
Theo thứ tự, và không bước nào bỏ qua được:
- Bản phát hành được tải về và đối chiếu hash với feed cập nhật có chữ ký. Payload không khớp thì không được giải nén.
- Chữ ký được kiểm tra bằng khóa công khai biên dịch sẵn trong MixEngine. Không có gì ở tầng truyền tải được tin để quyết định một file có phải của chúng tôi hay không.
- Bản
mixenginedmới được chạy thử một lần trước khi thay bất cứ gì, để chắc máy này khởi động được nó. Một bản cập nhật sẽ để lại daemon không chạy được thì bị chặn ở đây, thay vì phát hiện ra sau. - Những gì đang chạy được dừng, các file thực thi được thay, và daemon thoát.
mixkhởi động daemon mới, và daemon khởi động lại service của bạn.
Chương trình duy nhất không bao giờ bị đụng tới
mixengine-elevate chạy với quyền quản trị, nên thay nó là một hành động đặc quyền.
mix self-update cố ý để nguyên nó.
mix elevation upgrade
Đó là hành động riêng, có chủ đích. Lệnh này tải chương trình phụ trợ mà bản phát hành này công
bố, kiểm tra chữ ký của MixEngine trên đó, chạy thử một lần để chắc nó khởi động được, rồi đưa bản
thay thế vào hàng đợi. Lệnh này không cài gì cả: mix elevation grant mới là lệnh hiện hộp
thoại xin quyền, và chương trình phụ trợ đang cài sẽ tự kiểm tra chữ ký thêm lần nữa trước khi cho
phép bất cứ gì ghi đè lên nó.
Trong lúc đó, bản cũ và bản mới cùng tồn tại an toàn. Daemon và chương trình phụ trợ thỏa thuận phiên bản giao thức khi nói chuyện với nhau. Chương trình phụ trợ cũ vẫn phục vụ các thao tác nó biết, trong khi MixEngine nhắc bạn nâng cấp nó.
Khi MixEngine được cài bằng trình quản lý gói
mix self-update từ chối, nói rõ lý do, và nêu tên thư mục. Đó là hành vi đúng chứ không phải vô
ích: bản cài bằng apt, dnf hay .pkg thuộc về trình quản lý gói đó. Thay file sau lưng nó sẽ
khiến hồ sơ của hệ thống mô tả một thứ không còn ở đó nữa. Hãy cập nhật theo đúng cách bạn đã cài.
Bản zip portable, AppImage, bộ cài Windows theo người dùng và bản build từ mã nguồn đều cập nhật
bình thường bằng mix self-update.
Phiên bản
MixEngine dùng semantic versioning, một số phiên bản chung cho mọi thứ nó phát hành. Trước 1.0, API
có thể thay đổi không tương thích giữa các phiên bản minor, và mỗi thay đổi như vậy được liệt kê
trong changelog. Đó chính là thứ mix self-update --check in ra trước khi hỏi bạn.
Trang này ở dạng Markdown: https://mixnz.github.io/mixengine/vi/updating.md