text:
Mục lục
aptitudevà/hay
apt
aptdanh sách các gói tự động cài đặt của
aptitude
Đang đợi hệ thống tập tin gốc
Trước khi nâng cấp, khuyên người dùng cũng đọc thông tin trong Chương 5, Vấn đề lenny cần ghi nhớ. Chương đó diễn tả các vấn đề có thể gặp mà không phải liên quan trực tiếp đến quá trình nâng cấp, nhưng vẫn còn có thể cần biết trước khi bắt đầu.
Trước khi nâng cấp hệ thống, rất khuyên người dùng tạo một bản sao lưu hoàn toàn, hoặc ít nhất sao lưu bất kỳ dữ liệu hay thông tin cấu hình không nên mất. Các công cụ và quá trình nâng cấp vẫn hơi tin cậy, nhưng một sự thất bại phần cứng ở giữa việc nâng cấp có thể gây ra một hệ thống rất bị hại.
Dữ liệu chính nên sao lưu là nội dung của thư mục
/etc,
/var/lib/dpkg,
/var/lib/aptitude/pkgstates và kết xuất của câu lệnh
dpkg --get-selections "*" (hai dấu nháy kép vẫn đáng kể).
Quá trình nâng cấp chính nó không sửa đổi gì trong thư mục
/home (thư mục chính của mỗi người dùng). Tuy nhiên,
một số ứng dụng nào đó (v.d. thuộc về bộ ứng dụng Mozilla, và môi trường
GNOME and KDE) được biết là ghi đè lên thiết lập người dùng đã tồn tại bằng
giá trị mặc định mới khi một phiên bản mới của ứng dụng được khởi chạy đầu
tiên bởi một người dùng. Để phòng ngừa, khuyên người dùng sao lưu các tập
tin và thư mục bị ẩn (“tập tin chấm”) trong thư mục chính của
mỗi người dùng. Bản sao lưu này có thể giúp phục hồi hoặc tạo lại thiết lập
cũ. Quản trị cũng có thể muốn cho các người dùng biết về trường hợp này.
Mỗi thao tác cài đặt gói phải được chạy với quyền siêu người dùng: có nên
đăng nhập dưới
root (người chủ) hoặc sử dụng lệnh
su hay sudo để lấy được quyền truy cập
cần thiết.
Việc nâng cấp có một số điều kiện tiên quyết: người dùng nên kiểm tra trước khi thật thực hiện tiến trình nâng cấp.
Phiên bản lenny của
glibc
không hoạt động được với hạt nhân cũ hơn
2.6.8 trên bất
cứ kiến trúc nào, và một số kiến trúc nào đó có nhiều nhu cầu hơn. Rất
khuyên quản trị nâng cấp lên và thử một hạt nhân etch phiên bản
2.6.18 hay
2.6.24, hoặc một hạt nhân
riêng ít nhất phiên bản
2.6.18 trước khi khởi chạy tiến
trình nâng cấp.
Khuyên quản trị thông báo trước cho mọi người dùng biết về bất kỳ quá trình nâng cấp dự định, dù người dùng đang truy cập đến hệ thống thông qua một kết nối ssh nên thấy ít trong khi nâng cấp, và nên có thể tiếp tục làm việc.
Muốn thực hiện thêm bước phòng ngừa thì sao lưu hoặc tháo gắn kết phân vùng
/home) trước khi nâng cấp.
Nâng cấp lên lenny thì rất có thể là cũng cần phải nâng cấp hạt nhân, do đó cần phải khởi động lại hệ thống (bình thường sau khi nâng cấp xong).
Do rất nhiều thay đổi trong hạt nhân (so etch với lenny) đối với trình điều khiển, phát hiện phần cứng và đặt tên và sắp đặt các tập tin thiết bị, thật sự rủi ro là người dùng có thể gặp khó khăn trong việc khởi động lại hệ thống sau khi nâng cấp. Rất nhiều vấn đề có thể gặp đã được diễn tả trong chương này, và những chương kế tiếp của Ghi chú Phát hành này.
Vì lý do đó hợp lý là người dùng hay quản trị đảm bảo có thể phục hồi nếu hệ thống không khởi động lại được hoặc, đối với hệ thống quản lý từ xa, không chạy mạng được.
Nếu quản trị nâng cấp từ xa qua một liên kết ssh, rất khuyên quản trị cũng thực hiện những bước phòng ngừa cần thiết để có khả năng truy cập đến máy phục vụ qua một thiết bị nối tiếp từ xa. Vẫn có thể là, sau khi nâng cấp hạt nhân và khởi động lại hệ thống, một số thiết bị sẽ bị thay tên (như diễn tả trong Phần 4.6.2, “Số thứ tự thiết bị khác”) thì quản trị cần phải sửa chữa cấu hình hệ thống thông qua một bàn giao tiếp cục bộ. Hơn nữa, nếu hệ thống bị tình nguyện cờ khởi động lại ở giữa quá trình nâng cấp, quản trị có thể cần phải phục hồi dùng một bàn giao tiếp cục bộ.
Cái hiển nhiện nhất để thử đầu tiên để khởi động lại bằng hạt nhân cũ. Tuy nhiên, vì các lý do khác nhau diễn tả ở nơi khác của tài liệu này, sự thử này không phải đảm bảo thành công.
Nếu nó không thành công, quản trị cần một phương pháp khác để khởi động hệ
thống để truy cập và sửa chữa nó. Một lựa chọn là sử dụng một ảnh cứu đặc
biệt hay một đĩa CD Linux Động. Sau khi khởi động từ đó, quản trị nên có khả
năng gắn kết hệ thống tập tin gốc và
chroot vào nó để xem
xét và sửa chữa vấn đề.
Một lựa chọn khác có thể khuyến khích là sử dụng chế độ cứu của Bộ Cài Đặt Debian lenny. Lợi ích khi sử dụng bộ cài đặt là người dùng có thể chọn trong nhiều phương pháp cài đặt khác nhau một phương pháp riêng lẻ thích hợp nhất với trường hợp đó. Để tìm thêm thông tin, xem phần “Phục hồi một hệ thống bị hỏng” trong Chương 8 của Sổ tay Cài đặt (dịch sang tiếng Việt) vàHỏi Đáp Cài đặt Debian.
Công cụ
initramfs-tools bao gồm một
trình bao gỡ lỗi[2] trong mỗi initrd nó tạo. Nếu (ví dụ) initrd không thể gắn kết hệ
thống tập tin gốc, nó sẽ mở trình bao gỡ lỗi này mà có sẵn các lệnh cơ bản
để tìm vết của vấn đề và (có thể) sửa chữa nó.
Các cái cơ bản cần kiểm tra: có những tập tin thiết bị đúng trong thư mục
/dev; những mô-đun nào được nạp (
cat
/proc/modules); kết xuất của lệnh dmesg về lỗi
nạp trình điều khiển. Kết xuất của dmesg cũng hiển thị
tập tin thiết bị nào được gán cho đĩa nào; quản trị cũng nên so thông tin đó
với kết xuất của câu lệnh
echo $ROOT để kiểm tra hệ thống
tập tin gốc nằm trên thiết bị mong đợi.
Nếu quản trị có phải sửa chữa được vấn đề, việc gõ lệnh thoát
exit sẽ thoát khỏi trình bao gỡ lỗi và tiếp tục lại tiến
trình khởi động ở điểm thời nó thất bại trước. Tất nhiên, quản trị cũng cần
phải sửa chữa vấn đề cơ sở và tạo lại initrd để mà khởi động được về sau.
Việc nâng cấp bản phân phối nên được làm hoặc cục bộ từ một bàn giao tiếp ảo chế độ văn bản (hay một thiết bị cuối nối tiếp được kết nối trực tiếp), hoặc từ xa thông qua một liên kết ssh.
Để tăng hệ số an toàn khi nâng cấp từ xa, khuyên quản trị chạy tiến trình nâng cấp trên bàn giao tiếp ảo được chương trình screen cung cấp, mà hiệu lực chức năng tái kết nối an toàn và đảm bảo tiến trình nâng cấp không phải bị gián đoạn thậm chí nếu quá trình kết nối từ xa không thành công.
Quá trình nâng cấp diễn tả trong chương này đã được thiết kế cho việc nâng cấp từ hệ thống etch « thuần »: hệ thống không chứa gói thuộc nhóm ba. Để nâng cấp một cách tin cậy nhất, quản trị cũng có thể gỡ bỏ các gói nhóm ba khỏi hệ thống trước khi bắt đầu nâng cấp.
Thủ tục này cũng giả sử hệ thống đã được cập nhật lên bản phát hành điểm mới nhất của etch. Không hay chưa chắc thì quản trị nên theo những hướng dẫn trong Phần A.1, “Nâng cấp hệ thống etch”.
Trong một số trường hợp nào đó, sử dụng apt-get thay cho aptitude để cài đặt gói có thể làm cho aptitude thấy một gói nào đó là “chưa dùng” và định thời nó bị gỡ bỏ. Thông thường, quản trị nên kiểm tra hệ thống vẫn “sạch” và được cập nhật hoàn toàn trước khi tiếp tục nâng cấp.
Do đó, quản trị nên kiểm tra có hành vi bị hoãn trong bộ quản lý gói
aptitude. Vẫn có một gói định thời gỡ bỏ hay cập nhật
trong bộ quản lý gói thì nó có thể ảnh hưởng âm đến quá trình nâng cấp. Ghi
chú rằng chỉ có thể sửa chữa trường hợp này nếu tập tin liệt kê các nguồn
sources.list vẫn còn chỉ tới
etch;, không phải tới bản ổn
định (stable) hay lenny; xem Phần A.2, “Kiểm tra danh sách nguồn”.
Để thực hiện thủ tục xem lại này, hãy khởi chạy aptitude trong “chế độ trực quan” và bấm phím g (“Đi”). Nếu nó hiển thị hành vi nào, quản trị nên xem lại và sửa chữa hoặc thực hiện chúng. Không có hành vi đề xuất thì chương trình hiển thị một thông điệp: “Không có gói nào được định cài đặt, gỡ bỏ hoặc nâng cấp”.
Nếu người dùng đã cấu hình APT để cài đặt một số gói nào đó từ một bản phát
hành khác với bản ổn định (stable), v.d. từ bản thử (testing), thì có lẽ
người dùng cần phải sửa đổi cấu hình ghim phiên bản trong APT (cất giữ trong
/etc/apt/preferences) để cho phép nâng cấp gói lên
phiên bản trong bản phát hành ổn định mới. Có thể tìm thêm thông tin về chức
năng ghim phiên bản APT trong apt_preferences(5).
Bất chấp phương pháp dùng để nâng cấp, khuyên người dùng trước tiên kiểm tra trạng thái về tất cả các gói, và thẩm tra mọi gói đều có tình trạng có thể nâng cấp. Theo đây có câu lệnh sẽ hiển thị gói nào có trạng thái « Nửa cài đặt » hay « Lỗi cấu hình » hay bất cứ trạng thái lỗi nào.
# dpkg --audit
Cũng có thể kiểm tra trạng thái về tất cả các gói trên hệ thống dùng dselect, aptitude, hay câu lệnh như
# dpkg -l | pager
hay
# dpkg --get-selections "*" > ~/curr-pkgs.txt
Có nên gỡ bỏ bất kỳ tình trạng giữ lại trước khi nâng cấp. Nếu gói nào chủ yếu để nâng cấp vẫn còn bị giữ lại, thì việc nâng cấp sẽ không thành công.
Ghi chú rằng aptitude sử dụng một phương pháp khác để đăng ký các gói bị giữ lại, so với apt-get và dselect. Người dùng có thể tìm những gói bị giữ lại trong aptitude dùng câu lệnh
# aptitude search "~ahold" | grep "^.h"
Muốn kiểm tra những gói nào bị giữ lại trong apt-get thì dùng câu lệnh
# dpkg --get-selections | grep hold
Nếu người dùng đã sửa đổi và biên dịch lại gói nào một cách cục bộ, vẫn không thay đổi tên nó hoặc đặt thời điểm vào phiên bản, người dùng phải đặt tình trạng giữ lại cho nó, để ngăn cản nó được nâng cấp.
Trong aptitude, tình trạng gói “giữ lại” có thể được thay đổi dùng câu lệnh
# aptitude hold
tên_gói
Thay thế từ
hold (giữ lại) bằng
unhold
(bỏ giữ) để bỏ đặt tình trạng “giữ lại”.
Vẫn có gì cần sửa chữa thì người dùng nên kiểm tra tập tin
sources.list vẫn còn tham chiếu đến etch
như diễn tả trong Phần A.2, “Kiểm tra danh sách nguồn”.
Nếu tập tin
/etc/apt/sources.list chứa phần
proposed-updates, người dùng nên gỡ bỏ tập tin này trước
khi thử nâng cấp hệ thống. Đây là một bước phòng ngừa để giảm sự có thể bị
xung đột.
Nếu hệ thống chứa gói nào khác Debian, ghi chú rằng các gói như vậy có thể
bị gỡ bỏ trong quá trình nâng cấp, do quan hệ phụ thuộc bị xung đột. Nếu
những gói này đã được cài đặt bằng cách thêm một kho gói bổ sung vào tập tin
/etc/apt/sources.list, người dùng nên kiểm tra nếu kho
gói đó cũng cung cấp các gói được biên dịch cho lenny, và sửa đổi
dòng nguồn một cách tương ứng, cùng lúc với sửa đổi các dòng nguồn về gói
Debian.
Hệ thống etch có lẽ cũng chứa phiên bản “mới” chuyển ngược không chính thức của gói có phải thuộc về Debian. Gói như vậy rất có thể gây ra vấn đề trong quá trình nâng cấp, vì kết quả là hai tập tin bị xung đột nhau[3]. Phần 4.5.8, “Vấn đề có thể gặp trong khi nâng cấp” có vài thông tin về cách giải quyết hai tập tin bị xung đột (nếu trường hợp này xảy ra).
backports.org là một kho gói bán chính thức duy trì bởi
các nhà phát triển Debian GNU/Linux, mà cung cấp các gói mới cho bản phát hành ổn
định (stable), dựa vào xây dựng lại các gói từ kho gói “thử”
(testing).
Kho
backports.org chứa chính các gói từ bản
“thử” (testing) mà vẫn có số thứ tự phiên bản bị giảm, để bảo
vệ đường dẫn nâng cấp từ bản chuyển ngược etch lên
lenny. Tuy nhiên, có chỉ vài gói chuyển ngược được tạo từ bản
“bất định” (unstable): các bản cập nhật bảo mật và những ngoại
lệ Firefox, hạt nhân Linux, OpenOffice.org và X.Org.
If you do not use one of these exceptions, you can safely upgrade to
lenny. If you use one of these exceptions, set the
Pin-Priority (see apt_preferences(5)) temporarily to
1001 for all packages
from lenny, and you should be able to do a safe dist-upgrade too.
Để ngăn cản aptitude gỡ bỏ một số gói nào đó mà được lấy do quan hệ phụ thuộc, người dùng cần phải tự bỏ dấu tự động khỏi mỗi gói. Trong bản cài đặt môi trường đồ họa, trường hợp này bao gồm OpenOffice và Vim:
# aptitude unmarkauto openoffice.org vim
Và các ảnh hạt nhân 2.6 được cài đặt dùng một siêu gói hạt nhân:
# aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6.*' | cut -f1)
Trước khi khởi chạy tiến trình nâng cấp, người dùng cần phải thiết lập tập
tin cấu hình
apt về danh sách các
gói:
/etc/apt/sources.list.
apt sẽ xem xét mọi gói được tìm
thông qua một dòng “
deb”, và cài đặt gói có
số thứ tự phiên bản cao nhất, cũng gán quyền ưu tiên cho dòng đầu của tập
tin (do đó khi có nhiều địa chỉ máy nhân ban, bình thường đặt tên một đĩa
cứng cục bộ, sau đó các đĩa CD-ROM, và các máy nhân bản
HTTP/FTP).
Mỗi bản phát hành có một tên mã (v.d.
etch,
lenny) và một tên trạng thái (tức là
oldstable [ổn định cũ],
stable [ổn
định],
testing [thử],
unstable [bất
định]). Tham chiếu đến một bản phát hành theo tên mã có lợi ích là dễ phân
biệt các bản phát hành khác nhau. Người dùng có thể theo dõi các thông báo
phát hành tìm tên mã mới và tự cập nhật hệ thống. Tuy nhiên, người dùng phân
biệt theo tên trạng thái sẽ thấy rất nhiều bản cập nhật gói ngay khi bản mới
được phát hành.
Cấu hình mặc định được thiết lập để cài đặt từ các máy phục vụ Debian chính,
nhưng người dùng cũng có thể sửa đổi tập tin
/etc/apt/sources.list để sử dụng máy nhân bản khác, tốt
hơn một máy nhân bản gần chỗ người dùng trên mạng.
Có thể tìm các địa chỉ máy nhân bản HTTP/FTP Debian ở http://www.debian.org/distrib/ftplist (xem phần “list of Debian mirrors” [danh sách các máy nhân bản Debian]). Máy nhân bản HTTP thường chạy nhanh hơn máy nhân bản FTP.
Ví dụ, giả sử máy nhân bản Debian gần nhất là
http://mirrors.kernel.org. Khi xem xét nó dùng trình duyệt
Web hay một chương trình FTP, người dùng sẽ thấy những thư mục chính được
sắp đặt như thế:
http://mirrors.kernel.org/debian/dists/lenny/main/binary-powerpc/... http://mirrors.kernel.org/debian/dists/lenny/contrib/binary-powerpc/...
Để sử dụng máy nhân bản này với
apt,
người dùng nên thêm vào tập tin
sources.list dòng này:
deb http://mirrors.kernel.org/debian lenny main contrib
Ghi chú rằng đoạn «
dists » được thêm ngầm, và các đối số
đằng sau tên bản phát hành được dùng để mở rộng đường dẫn ra nhiều thư mục.
Sau khi thêm các nguồn mới, hãy tắt mỗi dòng
“
deb” đã tồn tại trong
sources.list bằng cách ghi một dấu thăng
(
#) vào trước.
Thay vào sử dụng máy nhân bản HTTP/FTP, người dùng cũng có thể sửa đổi tập
tin
/etc/apt/sources.list để sử dụng kho nhân bản trên
một đĩa cục bộ (có thể gắn kết thông qua NFS).
Ví dụ, kho nhân bản gói có thể nằm dưới
/var/ftp/debian/, với các thư mục chính:
/var/ftp/debian/dists/lenny/main/binary-powerpc/... /var/ftp/debian/dists/lenny/contrib/binary-powerpc/...
Để sử dụng kho cục bộ này với
apt,
hãy thêm vào tập tin
sources.list dòng này:
deb file:/var/ftp/debian lenny main contrib
Ghi chú rằng đoạn «
dists » được thêm ngầm, và các đối số
đằng sau tên bản phát hành được dùng để mở rộng đường dẫn ra nhiều thư mục.
Sau khi thêm các nguồn mới, hãy tắt mỗi dòng
“
deb” đã tồn tại trong
sources.list bằng cách ghi một dấu thăng
(
#) vào trước.
Nếu người dùng chỉ muốn sử dụng các đĩa CD, hãy ghi chú
tắt (đặt
# vào trước) những dòng
“
deb” đã tồn tại trong tập tin
/etc/apt/sources.list.
Kiểm tra tập tin
/etc/fstab chứa một dòng hiệu lực gắn
kết ổ đĩa CD ở điểm lắp
/cdrom (điểm lắp
/cdrom chính xác cần thiết cho
apt-cdrom). Ví dụ, nếu
/dev/hdc là ổ
đĩa CD,
/etc/fstab nên chứa một dòng như thế:
/dev/hdc /cdrom auto defaults,noauto,ro 0 0
Ghi chú rằng không cho phép khoảng cách nằm giữa các từ
defaults,noauto,ro trong trường thứ tư.
Để thẩm tra chức năng, nạp một đĩa CD và thử chạy:
# mount /cdrom # câu lệnh này gắn kết đĩa CD tới điểm lắp # ls -alF /cdrom # câu lệnh này nên hiển thị thư mục gốc của đĩa CD # umount /cdrom # câu lệnh này sẽ tháo gắn kết đĩa CD
Sau đó thì chạy:
# apt-cdrom add
cho mỗi đĩa CD nhị phân Debian, để thêm dữ liệu về mỗi đĩa CD vào co sở dữ liệu của APT.
Phương pháp khuyến khích để nâng cấp từ một bản phát hành Debian GNU/Linux trước là sử dụng công cụ quản lý gói aptitude. Chương trình này cài đặt gói một cách an toàn chạy trực tiếp apt-get.
Đừng quên gắn kết tất cả các phân vùng cần thiết (đặc biệt phiên bản gốc và
/usr) với quyền đọc-ghi, dùng một câu lệnh như :
# mount -o remount,rw /
điểm_lắp
Sau đó thì người dùng nên kiểm tra những mục nhập nguồn APT (trong
/etc/apt/sources.list) tham chiếu đến hoặc
“
lenny” hoặc
“
stable”. Không nên có nguồn nào vẫn còn chỉ
tới etch.
Rất khuyên người dùng sử dụng chương trình /usr/bin/script để thu một bản sao của phiên chạy nâng cấp. Như thế, nếu một vấn đề xảy ra, có một bản sao mọi hành vi, và nếu cần, người dùng có thể cung cấp thông tin chính xác trong một báo cáo lỗi hay báo cáo nâng cấp. Để bắt đầu thu, hãy gõ câu lệnh:
# script -t 2>~/upgrade-lenny.time -a ~/upgrade-lenny.script
hay tương tự. Đừng để bản sao vào một thư mục tạm thời như
/tmp hay
/var/tmp (các tập tin
trong hai thư mục này có thể bị xoá trong khi nâng cấp hoặc khi nào khởi
động lại).
Bản sao này cũng cho phép xem lại thông tin đã cuộn qua màn hình. Chỉ chuyển
đổi sang VT2 (dùng tổ hợp phím Alt+F2) và, sau
khi đăng nhập, dùng câu lệnh
less -R
~root/upgrade-lenny.script để xem tập tin đó.
Sau khi nâng cấp xong, người dùng có thể dừng chạy script
bằng cách gõ lệnh thoát
exit vào dấu nhắc.
Có đặt cờ -t trong câu lệnh script nói trên thì người dùng cũng có thể sử dụng chương trìnhscriptreplay để phát lại toàn bộ phiên chạy.
# scriptreplay ~/upgrade-lenny.time ~/upgrade-lenny.script
Trước tiên nên lấy danh sách các gói sẵn sàng cho bản phát hành mới. Việc này được làm bằng cách chạy câu lệnh cập nhật:
# aptitude update
Việc chạy câu lệnh này lần đầu tiên cập nhật các nguồn mới sẽ in ra một số cảnh báo liên quan đến tính sẵn sàng của các nguồn. Những cảnh báo này vô hại và chỉ xuất hiện một lần.
Trước khi nâng cấp hệ thống, người dùng cần phải kiểm tra có đủ sức chứa còn
lại trên đĩa cứng, đặc biệt khi khởi chạy tiến trình nâng cấp hệ thống đầy
đủ diễn tả trong Phần 4.5.7, “Nâng cấp phần hệ thống còn lại”. Trước tiên, bất cứ gói
nào cần cài đặt được lấy từ mạng và cất giữ trong thư mục
/var/cache/apt/archives (cũng trong thư mục con
partial/ trong khi tải về), do đó người dùng cần phải
kiểm tra có đủ sức chứa còn lại trên phân vùng đó (phân vùng hệ thống tập
tin chứa
/var) để tải về tạm thời tất cả các gói cần
cài đặt vào hệ thống. Sau khi tải về, rất có thể là cần thêm sức chứa trống
trong các phiên bản hệ thống tập tin khác để cài đặt cả hai các gói đã nâng
cấp (mà có thể chứa các tập tin nhị phân lớn hơn hay dữ liệu bổ sung) và các
gói mới được lấy cho quá trình nâng cấp. Nếu hệ thống không có đủ sức chứa
trống, kết quả có thể là một quá trình nâng cấp chưa xong, một trường hợp có
thể khó phục hồi.
Cả hai aptitude và
apt sẽ hiển thị thông tin chi tiết về sức chứa
trống trên đĩa mà cần thiết để cài đặt. Trước khi khởi chạy tiến trình nâng
cấp, người dùng có thể thấy sự ước lượng này bằng cách chạy câu lệnh:
# aptitude -y -s -f --with-recommends dist-upgrade [ ... ] XXX gói được nâng cấp, XXX mới được cài đặt, XXX cần gỡ bỏ và XXX không được nâng cấp. Cần phải lấy xx.xMB/yyyMB kho. Sau khi giải nén AAAMB sẽ được chiếm. Nên tải về / cài đặt/ gỡ bỏ các gói.
Không có đủ sức chứa để nâng cấp thì trước tiên người dùng phải giải phóng thêm sức chứa. Ví dụ :
Gỡ bỏ các gói được tải về trước đây để cài đặt (trong thư mục
/var/cache/apt/archives). Làm sạch vùng nhớ tạm gói
bằng cách chạy câu lệnh apt-get clean hay
aptitude clean để gỡ bỏ tất cả các tập tin gói đã tải về
trước.
Gỡ bỏ các gọi bị quên. Nếu người dùng đã cài đặt gói
popularity-contest, cũng có thể sử dụng
popcon-largest-unused để liệt kê những gói không dùng mà
chiếm sức chứa nhiều nhất. Cũng có thể sử dụng deborphan
hay debfoster để tìm các gói quá cũ (xem Phần 4.10, “Gói quá cũ” ). Hoặc người dùng có thể khởi chạy
aptitude trong “chế độ trực quan” và tìm các
gói quá cũ dưới tiêu đề “Gói cũ và tạo cục bộ”.
Gỡ bỏ các gói chiếm quá nhiều sức chứa mà hiện thời không phải cần thiết
(lúc nào cũng có thể phục hồi sau khi nâng cấp). Người dùng có thể liệt kê
những gói chiếm nhiều sức chứa nhất trên đĩa, dùng dpigs
(sẵn sàng trong gói
debian-goodies)
hay wajig (chạy câu lệnh
wajig size).
You can list packages that take up most of the disk space with
aptitude. Start aptitude
into “visual mode”, select
→ (this menu entry is available only after
etch version), press l and enter
~i,
press S and enter
~installsize, then it
will give you nice list to work with. Doing this after upgrading
aptitude should give you access to
this new feature.
Gỡ bỏ khỏi hệ thống các bản dịch và tập tin địa hoá mà không cần
thiết. Người dùng có thể cài đặt gói
localepurge và cấu hình nó để giữ trong hệ thống
chỉ một số miền địa phương đã chọn (v.d. tiếng Việt, tiếng Anh và tiếng
Nga). Thủ tục này sẽ giảm sức chứa trên đĩa được chiếm ở
/usr/share/locale.
Tạm thời di chuyển sang một hệ thống khác, hoặc gỡ bỏ hẳn, các bản ghi hệ
thống nằm dưới
/var/log/.
Dùng một thư mục
/var/cache/apt/archives tạm thời: có
thể đặt một thư mục nhớ tạm mà tạm thời, từ một hệ thống khác (vật chứa
USB, đĩa cứng tạm thời, hệ thống đang được dùng v.v.).
Ví dụ, nếu có một ổ đĩa USB được gắn kết đến
/media/usbkey:
gỡ bỏ các gói đã tải về trước đây để cài đặt:
# apt-get clean
sao chép thư mục
/var/cache/apt/archives sang vật chứa
USB:
# cp -ax /var/cache/apt/archives /media/usbkey/
gắn kết thư mục nhớ tạm vẫn tạm thời đến thư mục hiện thời:
# mount --bind /media/usbkey/archives /var/cache/apt/archives
sau khi nâng cấp thì phục hồi thư mục
/var/cache/apt/archives gốc:
# umount /media/usbkey/archives
gỡ bỏ
/media/usbkey/archives còn lại.
Người dùng có thể tạo thư mục nhớ tạm vẫn tạm thời trên hệ thống tập tin nào được gắn kết trên hệ thống.
Ghi chú rằng để gỡ bỏ gói một cách an toàn, khuyên người dùng chuyển đổi tập
tin
sources.list về etch như diễn tả trong
Phần A.2, “Kiểm tra danh sách nguồn”.
Several bug reports have shown that the versions of the
aptitude and
apt packages in etch are often unable to handle
the upgrade to lenny. In lenny,
apt is better at dealing with complex chains of
packages requiring immediate configuration and
aptitude is smarter at searching for solutions
to satisfy the dependencies. These two features are heavily involved during
the dist-upgrade to lenny, so it is necessary to upgrade these two
packages before upgrading anything else.
The following command will upgrade both
aptitude and
apt:
# aptitude install aptitude apt dpkg
This step will also automatically upgrade
libc6 and
locales. At this point, some running services
will be restarted, including xdm, gdm
and kdm. As a consequence, local X11 sessions might be
disconnected.
Phần mềm
aptitude bảo tồn một danh
sách các gói đã được tự động cài đặt (v.d. do quan hệ phụ thuộc với một gói
khác). Trong lenny,
apt cũng
có tính năng này.
Lần đầu tiên chạy phiên bản lenny của
aptitude thì nó đọc danh sách các gói tự động
cài đặt, và chuyển đổi nó để sử dụng với phiên bản lenny của
apt. Người dùng đã cài đặt
aptitude về trước thì cần phải chạy
ít nhất một câu lệnh aptitude để sơ khởi quá trình chuyển
đổi này. Thí dụ, tìm kiếm một gói không tồn tại:
# aptitude search "?false"
Do một số sự xung đột gói giữa etch và lenny, việc chạy
câu lệnh
aptitude dist-upgrade một cách trực tiếp sẽ
thường gỡ bỏ rất nhiều gói mà người dùng muốn giữ. Vì lý do đó, khuyên người
dùng chạy một quá trình nâng cấp có hai phần riêng: trước tiên một việc nâng
cấp tối thiểu để giải quyết trường hợp xung đột, và sau đó một việc
dist-upgrade đầy đủ.
Trước tiên, chạy câu lệnh:
# aptitude safe-upgrade
Kết quả là nâng cấp những gói có thể nâng cấp được mà không cần gỡ bỏ hay cài đặt gói khác nào.
Bước kế tiếp vẫn biến đổi phụ thuộc vào tập hợp gói được cài đặt hiện thời. Ghi chú Phát hành này chỉ có thể cung cấp lời khuyên chung về phương pháp nên dùng, nhưng nếu chưa chắc, rất khuyên người dùng xem lại danh sách các gói nên gỡ bỏ tùy theo mỗi phương pháp, trước khi tiếp tục.
Phương pháp này có thể gỡ bỏ một số gói thường dùng, bao gồm
base-config,
hotplug,
xlibs,
netkit-inetd,
python2.3,
xfree86-common và
xserver-common. Để tìm thêm thông tin về những
gói đã lỗi thời trong lenny, xem Phần 4.10, “Gói quá cũ”.
Sau đó thì có thể tiếp tục phần chính của quá trình nâng cấp. Chạy câu lệnh:
# aptitude dist-upgrade
Câu lệnh này sẽ nâng cấp hoàn toàn hệ thống, tức là cài đặt phiên bản mới nhất của mọi gói sẵn sàng, và giải quyết mọi quan hệ phụ thuộc có thể biến đổi trong bản phát hành khác nhau. Nếu cần thiết, nó sẽ cài đặt một số gói mới (thường là phiên bản thư viện mới, hay gói bị thay tên), và gỡ bỏ gói quá cũ nào bị xung đột.
Khi nâng cấp từ một bộ đĩa CD/DVD, người dùng sẽ được nhắc nạp một đĩa nào đó ở vài điểm thời trong quá trình nâng cấp. Có lẽ cần phải nạp nhiều lần cùng một đĩa, do các gói liên quan đến nhau mà được chia ra các đĩa khác nhau.
Gói được cài đặt hiện thời mà không thể nâng cấp mà không thay đổi trạng
thái cài đặt của một gói khác, sẽ còn lại ở phiên bản hiện thời (đánh dấu là
“giữ lại”). Vẫn còn có thể cài đặt phiên bản mới bằng cách sử
dụng aptitude để tự chọn những gói phiên bản mới, hoặc
bằng cách thử chạy câu lệnh
aptitude -f install
để cài đặt mỗi gói phiên bản
mới.
tên_gói
Nếu một thao tác dùng aptitude, apt-get hay dpkg không thành công và xuất lỗi
E: Hết chỗ tạo sơ đồ bộ nhớ động (Dynamic MMap)
thì không đủ sức chứa nhớ tạm mặc định. Quản trị có thể giải quyết vấn đề
này bằng cách gỡ bỏ hay tắt ghi chú các dòng không cần thiết trong tập tin
/etc/apt/sources.list, hoặc tăng kích cỡ vùng nhớ tạm
(đặt
APT::Cache-Limit trong tập tin cấu hình
/etc/apt/apt.conf. Câu lệnh theo đây sẽ đặt một giá trị
nên đủ để nâng cấp:
# echo 'APT::Cache-Limit "12500000";' >> /etc/apt/apt.conf
Câu lệnh này giả sử chưa đặt biến này trong tập tin đó.
Đôi khi cần phải hiệu lực tùy chọn
APT::Force-LoopBreak
trong APT để có khả năng tạm thời gỡ bỏ một gói chủ yếu do một vòng lặp Xung
đột/Phụ thuộc trước. aptitude sẽ thông báo về vòng lặp
này và hủy bỏ quá trình nâng cấp. Vẫn còn có thể giải quyết vấn đề này bằng
cách xác định tùy chọn
-o APT::Force-LoopBreak=1 trên
dòng lệnh aptitude.
Một trường hợp ít xảy ra là hệ thống có cấu trúc quan hệ phụ thuộc quá bị hỏng mà cần quản trị tự can thiệp. Có thể sử dụng aptitude hoặc
# dpkg --remove
tên_gói
để loại trừ một số gói phạm lỗi, hoặc
# aptitude -f install # dpkg --configure --pending
Trong trường hợp rất khó, bạn có thể cần phải ép buộc cài đặt lại, dùng một câu lệnh như
# dpkg --install
/đường/dẫn/tới/tên_gói.deb
Trường hợp tập tin bị xung đột không nên xảy ra khi nâng cấp từ một hệ thống etch “thuần”, nhưng vẫn còn có thể xảy ra nếu hệ thống chứa bản chuyển ngược không chính thức. Sự xung đột giữa các tập tin sẽ gây ra một lỗi như :
Đang giải nén
<tên_gói1>(từ
<tập_tin_gói1>) ... dpkg: gặp lỗi khi xử lý
<tên_gói1>(--install): đang thử ghi đè lên `
<tên_tập_tin>', mà cũng nằm trong gói
<tên_gói2>dpkg-deb: tiến trình con dán bị tín hiệu giết (Ống dẫn bị vỡ) Gập lỗi khi xử lý:
<tên_gói1>
Quản trị cũng có thể thử giải quyết một trường hợp các tập tin bị xung đột bằng cách ép buộc gỡ bỏ gói có tên trên dòng cuối cùng của thông điệp lỗi:
# dpkg -r --force-depends
tên_gói
Sau khi sửa chữa, quản trị nên có thể tiếp tục lại quá trình nâng cấp bằng cách lặp lại những câu lệnh aptitude diễn tả trước.
Trong khi nâng cấp, tiến trình sẽ hỏi câu về cách cấu hình (lại) vài
gói. Khi quá trình hỏi nếu tập tin nào trong thư mục
/etc/init.d hay
/etc/terminfo,
hoặc tập tin
/etc/manpath.config, nên được thay thế
bằng phiên bản của phần mềm quản lý gói, thường nên đồng ý để đảm bảo hệ
thống vẫn thống nhất. Lúc sau, cũng có thể hoàn nguyên mỗi phiên bản cũ, vì
nó sẽ được lưu với một phần mở rộng
.dpkg-old.
Chưa chắc nên làm gì thì viết tên của gói hay tập tin đó, và tháo gỡ trường
hợp vào một lúc sau. Cũng có thể tìm kiếm qua tập tin
typescript để xem lại thông tin đã cuộn qua trên màn
hình trong khi nâng cấp.
Phần này giải thích cách nâng cấp hạt nhân, và diễn tả một số vấn đề liên
quan đến quá trình nâng cấp này. Quản trị có dịp cài đặt một của những gói
linux-image-* được Debian cung cấp,
hoặc biên dịch một hạt nhân riêng từ mã nguồn.
Ghi chú rằng rất nhiều thông tin trong phần này dựa vào giả sử rằng quản trị
sẽ sử dụng một của những hạt nhân Debian kiểu mô-đun, cùng với
initramfs-tools và
udev. Nếu quản trị chọn sử dụng một hạt nhân
riêng mà không cần thiết một initrd, hoặc sử dụng một bộ tạo ra initrd khác,
một số thông tin ở đây có thể không còn thích hợp lại.
Khi chạy quá trình nâng cấp bản phát hành (
dist-upgrade)
từ etch lên lenny, rất khuyên quản trị cài đặt một siêu
gói (metapackage)
linux-image-2.6-*
mới. Gói này cũng có thể được tự động cài đặt bởi tiến trình
dist-upgrade. Quản trị có thể kiểm tra nó đã được cài đặt
bằng cách chạy câu lệnh:
# dpkg -l "linux-image*" | grep ^ii
Không có kết xuất gì thì quản trị cần phải tự cài đặt một gói
linux-image-2.6-*. Để thấy danh sách các gói
linux-image-2.6-* sẵn sàng, chạy câu
lệnh:
# apt-cache search linux-image-2.6- | grep -v transition
Chưa chắc về gói nào nên chọn thì chạy câu lệnh
uname -r
và tìm một gói có tên tương tự. Ví dụ, nếu thấy chuỗi «
2.6.18-6-686 », khuyên quản trị cài đặt gói
linux-image-2.6-686. (Ghi chú rằng mùi vị
k7 không còn tồn tại lại: quản trị hiện thời sử dụng mùi
vị hạt nhân 386 thì nên dùng mùi vị
686 để thay thế.)
Cũng có thể sử dụng công cụ apt-cache để hiển thị một mô
tả chi tiết về mỗi gói, để giúp chọn gói thích hợp nhất. Ví dụ :
# apt-cache show linux-image-2.6-686
Sau đó thì có nên sử dụng câu lệnh cài đặt
aptitude
install để cài đặt nó. Một khi cài đặt hạt nhân mới, quản trị nên
khởi động lại càng sớm càng có thể, để lợi dụng phiên bản hạt nhân mới.
Cho quản trị liều lĩnh hơn, có một phương pháp dễ để biên dịch hạt nhân
riêng trên Debian GNU/Linux. Hãy cài đặt công cụ
kernel-package và đọc các tài liệu hướng dẫn
trong thư mục
/usr/share/doc/kernel-package.
Nếu có thể, tốt hơn khi nâng cấp gói hạt nhân một cách riêng với quá trình
dist-upgrade chính, để tránh bị đứng với một hệ thống tạm
thời không khởi động được. Ghi chú rằng thao tác này chỉ nên được làm đằng
sau quá trình nâng cấp tối thiểu diễn tả trong Phần 4.5.6, “Nâng cấp hệ thống tối thiểu”.
lenny cung cấp một cơ chế phát hiện phần cứng mà mạnh mẽ hơn các bản
phát hành trước. Tuy nhiên, cơ chế này có thể sửa đổi thứ tự phát hiện thiết
bị trên hệ thống, mà ảnh hưởng đến thứ tự gán tên thiết bị. Ví dụ, nếu có
hai bộ tiếp hợp liên quan đến hai trình điều khiển khác nhau, thì hai chuỗi
eth0 và
eth1 có thể tham chiếu đến hai
thiết bị bị trao đổi, so với bản phát hành trước. Ghi chú rằng dùng cơ chế
mới (v.d.) việc chuyển đổi bộ tiếp hợp
Ethernet trong một
hệ thống lenny đang chạy có kết quả là bộ tiếp hợp mới sẽ cũng nhận
một tên giao diện mới.
Đối với thiết bị mạng, quản trị có thể tránh trường hợp này bằng cách sử
dụng các quy tắc của
udev, chính xác
hơn thông qua những lời xác định ở
/etc/udev/rules.d/70-persistent-net.rules[4]. Hoặc quản trị có thể sử dụng tiện ích
ifrename để đóng kết mỗi thiết bị vật lý tới một tên
riêng vào lúc khởi động. Xem ifrename(8) và iftab(5) để tìm thêm thông tin. Hai phần mềm
khác nhau (
udev và
ifrename) không nên được dùng đồng thời.
Đối với thiết bị lưu trữ, quản trị có thể tránh trường hợp thay đổi thứ tự
này bằng cách sử dụng gói công cụ
initramfs-tools và cấu hình nó để nạp các mô-đun
trình điều khiển thiết bị lưu trữ theo thứ tự được nạp hiện thời. Để làm như
thế, hãy tìm thứ tự theo đó các thiết bị lưu trữ được nạp vào hệ thống bằng
cách xem lại kết xuất của lsmod. Công cụ
lsmod liệt kê các mô-đun theo thứ tự nạp đảo ngược, tức
là mô-đun thứ nhất trong danh sách là mô-đun được nạp cuối cùng. Ghi chú
rằng phương pháp này chỉ có tác động với thiết bị mà hạt nhân đến theo một
thứ tự ổn định (v.d. thiết bị PCI).
Tuy nhiên, việc gỡ bỏ và nạp lại mô-đun sau khi khởi động đầu tiên sẽ ảnh
hưởng đến thứ tự này. Hơn nữa, hạt nhân trên máy có thể liên kết tĩnh một số
trình điều khiển, và các tên này sẽ không xuất hiện trong kết xuất của
lsmod. Quản trị cũng có thể xem lại bản ghi
/var/log/kern.loghay kết xuất của
dmesg để thử phân biệt những tên trình điều khiển này và
thứ tự nạp.
Hãy thêm những tên mô-đun này vào
/etc/initramfs-tools/modules theo thứ tự nên nạp vào
lúc khởi động. Một số tên mô-đun có thể thay đổi giữa etch và
lenny. Ví dụ,
sym53c8xx_2 đã trở thành
sym53c8xx.
Sau đó thì quản trị cần phải tạo ra lại (các) ảnh
initramfs bằng cách chạy câu lệnh
update-initramfs -u -k all.
Một khi chạy một hạt nhân lenny và
udev, quản trị cũng có thể cấu hình lại hệ thống
để truy cập đến đĩa theo một biệt hiệu không phụ thuộc vào thứ tự nạp trình
điều khiển. Các biệt hiệu này nằn trong cây thư mục
/dev/disk/.
Nếu khởi động hệ thống dùng một initrd được tạo dùng
initramfs-tools, trong một số trường hợp các tập
tin thiết bị được
udev tạo quá trễ
để văn lệnh khởi động xử lý.
Trường hợp này thường ngụ ý khi không khởi động được vì không thể gắn kết hệ
thống tập tin gốc, và màn hình hiển thị một trình bao gỡ lỗi. Tuy nhiên, nếu
quản trị kiểm tra về sau, tất cả các thiết bị cần thiết có phải nằm trong
/dev. Trường hợp này đã xảy ra khi hệ thống tập tin gốc
nằm trên một đĩa USB hay một mảng
RAID, đặc biệt khi dùng
LILO.
Có thể chỉnh lại vấn đề này bằng cách sử dụng tham số khởi động
rootdelay= (khoảng đợi khởi
động: 9 giây). Điều chỉnh giá trị này để thích hợp với trường hợp riêng.
9
Khi câu lệnh
aptitude dist-upgrade đã chạy xong, hoàn tất
quá trình nâng cấp “hình thức”, nhưng vẫn có một số công việc
cần làm trước khi khởi động lại.
Nếu hệ thống sử dụng
lilo là công cụ
nạp khởi động (nó là bộ nạp khởi động cho một số bản cài đặt
etch) rất khuyên quản trị chạy lilo lần nữa
sau khi nâng cấp:
# /sbin/lilo
Ghi chú rằng cần phải chạy lại lilo thậm chí nếu hạt nhân chưa được nâng cấp, vì giai đoạn thứ hai của lilo sẽ thay đổi so quá trình nâng cấp gói.
Hơn nữa, hãy xem lại nội dung của tập tin cấu hình
/etc/kernel-img.conf và kiểm tra nó chứa chuỗi
do_bootloader = Yes (làm bộ nạp khởi động = Có). Do đó,
bộ nạp khởi động lúc nào cũng chạy sau khi nâng cấp hạt nhân.
Gặp vấn đề nào khi chạy lilo thì hãy so sánh các liên kết
tượng trưng trong cây thư mục
/ mà chỉ tới
vmlinuz và
initrd với nội dung của
tập tin cấu hình
/etc/lilo.conf.
Nếu người dùng quên chạy lại lilo trước khi khởi động
lại, hoặc hệ thống tình cờ được khởi động lại trước khi người dùng có thể tự
làm như thế, hệ thống có thể sẽ không khởi động được. Thay cho dấu nhắc
lilo, người dùng sẽ chỉ thấy
LI khi
khởi động hệ thống[5]. Xem Phần 4.1.3, “Chuẩn bị phục hồi” để tìm thông tin về cách phục
hồi từ trường hợp này.
Một số người dùng đã thông báo rằng quá trình nâng cấp có thể gây ra hạt nhân không tìm được phân vùng gốc của hệ thống sau khi khởi động lại hệ thống.
Trong trường hợp như vậy, tiến trình khởi động hệ thống sẽ treo ở thông điệp theo đây:
Đang đợi hệ thống tập tin gốc...
và sau vài giây nữa, một dấu nhắc hộp bận thô sẽ xuất hiện.
Vấn đề này có thể xảy ra khi quá trình nâng cấp hạt nhân giới thiệu sử dụng
trình điều khiển IDE của thế hệ kế tiếp. Quy ước đặt tên
đĩa IDE cho trình điều khiển cũ là
hda,
hdb,
hdc,
hdd. Trình điều khiển mới sẽ đặt tên cùng những đĩa đó
sda,
sdb,
sdc,
sdd. Vấn đề xuất hiện khi quá trình nâng cấp không tạo ra
một tập tin
/boot/grub/menu.lst mới để tùy theo quy ước
đặt tên mới. Trong khi khởi động,
Grub sẽ gửi một phân vùng gốc hệ thống qua cho
hạt nhân mà hạt nhân vẫn còn không tìm được.
Người dùng đã gặp vấn đề này nên nhảy tới Phần 4.8.2, “Cách giải quyết vấn đề sau khi nâng cấp”. Để tránh vấn đề này trước khi nâng cấp, đọc nữa nhé.
Vẫn có thể tránh vấn đề này một cách hoàn toàn bằng cách sử dụng một bộ nhận diện cho hệ thống tập tin gốc mà không biến đổi giữa hai việc khởi động. Có hai phương pháp có thể làm như thế: đặt nhãn hệ thống tập tin, hoặc sử dụng bộ nhận diện duy nhất toàn thể (UUID). Hai phương pháp này được hỗ trợ trong Debian kể từ 4.0.
Hai phương pháp này có lợi ích và bất lợi. Phương pháp đặt nhãn vẫn dễ đọc hơn, nhưng cũng có thể gặp vấn đề nếu một hệ thống tập tin khác cùng máy có nhãn đó. Phương pháp UUID ít đẹp hơn, nhưng rất ít có thể tạo hai UUID xung đột.
Trong các mẫu thí dụ dưới đây, giả sử hệ thống tập tin gốc nằm trên
/dev/hda6. Cũng giả sử hệ thống có bản cài đặt
udev và hệ thống tập tin kiểu
ext2 hay
ext3.
Để thực hiện phương pháp đặt nhãn:
Đặt nhãn hệ thống tập tin (tên có số tối đa 15 ký tự) bằng cách chạy câu lệnh: e2label /dev/hda6 rootfilesys
Chỉnh sửa tập tin
/boot/grub/menu.lst và sửa đổi dòng:
# kopt=root=/dev/hda6 ro
thành
# kopt=root=LABEL=rootfilesys ro
Cập nhật những dòng hạt nhân (
kernel) trong tập tin lines
in
menu.lst bằng cách chạy câu lệnh
update-grub.
Chỉnh sửa tập tin
/etc/fstab và sửa đổi dòng mà gắn kết
phân vùng
/, v.d.
/dev/hda6 / ext3 defaults,errors=remount-ro 0 1
thành
LABEL=rootfilesys / ext3 defaults,errors=remount-ro 0 1
Thay đổi đáng kể là cột bên trái: không nên sửa đổi cột khác nào trên dòng này.
Để thực hiện phương pháp UUID:
Find out the universally unique identifier of your filesystem by issuing: ls -l /dev/disk/by-uuid | grep hda6. You can also use vol_id --uuid /dev/hda6 (in etch) or blkid /dev/hda6 (if already upgraded to lenny).
Kết quả nên một dòng tương tự với:
lrwxrwxrwx 1 root root 24 2008-09-25 08:16 d0dfcc8a-417a-41e3-ad2e-9736317f2d8a -> ../../hda6
UUID là tên của liên kết tượng trưng chỉ tới
/dev/hda6, tức là:
d0dfcc8a-417a-41e3-ad2e-9736317f2d8a.
Chỉnh sửa tập tin
/boot/grub/menu.lst và sửa đổi dòng:
# kopt=root=/dev/hda6 ro
thành
# kopt=root=UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8 ro
Cập nhật những dòng hạt nhân (
kernel) trong tập tin lines
in
menu.lst bằng cách chạy câu lệnh
update-grub.
Chỉnh sửa tập tin
/etc/fstab và sửa đổi dòng mà gắn kết
phân vùng
/, v.d.
/dev/hda6 / ext3 defaults,errors=remount-ro 0 1
thành
UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8 / ext3 defaults,errors=remount-ro 0 1
Thay đổi đáng kể là cột bên trái: không nên sửa đổi cột khác nào trên dòng này.
Phương pháp này thích hợp khi
Grub
hiển thị giao diện trình đơn để chọn mục nhập từ đó người dùng muốn khởi
động. Không có trình đơn xuất hiện thì hãy thử bấm phím Esc
trước khi hạt nhân khởi động, để ép buộc trình đơn xuất hiện. Vẫn còn không
thành công thì thử Phần 4.8.2.2, “Lời giải 2” hay Phần 4.8.2.3, “Lời giải 3”.
Trong trình đơn
Grub, hãy tô sáng
mục nhập từ đó cần khởi động. Bấm phím e để chỉnh sửa các
tùy chọn liên quan đến mục nhập này. Kết quả nên tương tự với:
root (hd0,0) kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro initrd /initrd.img-2.6.26-1-686
Tô sáng dòng
kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro
bấm phím e và thay thế
hd bằng
X
sd (
X
X đại
diện chữ
a,
b,
c
hay
d phụ thuộc vào hệ thống. Trong mẫu thí dụ này, dòng
này trở thành:
kernel /vmlinuz-2.6.26-1-686 root=/dev/sda6 ro
Sau đó, bấm phím Enter để lưu lại thay đổi. Nếu dòng khác
nào bao gồm
hd, cũng nên sửa
đổi nó. Không nên sửa đổi mục nhập tương tự với
X
root
(hd0,0). Một khi sửa đổi xong và lưu lại, bấm phím
b: hệ thống nên khởi động như bình thường.
Một khi khởi động được, người dùng cần phải sửa chữa bền bỉ vấn đề đó. Nhảy tới Phần 4.8.1, “Cách tránh vấn đề này trong khi nâng cấp” và áp dụng một của hai thủ tục đề xuất.
Khởi động từ vật chứa cài đặt Debian GNU/Linux (đĩa
CD/DVD) và khi được nhắc, chọn mục
rescue (cứu) để khởi chạy chế độ cứu. Chọn ngôn ngữ, địa
điểm và bố trí bàn phím, sau đó cho phép nó cấu hình mạng (bất chấp thành
không hay không). Sau một thời gian, nó nên nhắc người dùng chọn phân vùng
cần sử dụng làm hệ thống tập tin gốc. Các lựa chọn đề xuất sẽ hình như :
/dev/ide/host0/bus0/target0/lun0/part1 /dev/ide/host0/bus0/target0/lun0/part2 /dev/ide/host0/bus0/target0/lun0/part5 /dev/ide/host0/bus0/target0/lun0/part6
Nếu người dùng biết phân vùng nào là hệ thống tập tin gốc, chọn phân vùng thích hợp. Không thì chỉ thử phân vùng thứ nhất. Nếu phần mềm than phiền về một phân vùng hệ thống tập tin không hợp lệ, chỉ thử phân vùng kế tiếp, v.v. Thử lần lượt phân vùng nọ sau phân vùng kia không nên làm hại phân vùng, và nếu chỉ có một hệ điều hành được cài đặt trên đĩa thì dễ tìm phân vùng hệ thống tập tin đúng. Nếu có nhiều hệ điều hành được cài đặt vào đĩa, tốt hơn khi người dùng biết phân vùng nào là đúng.
Một khi chọn phân vùng, người dùng sẽ thấy một số tùy chọn khác nhau. Bật tùy chọn sẽ thực hiện một trình bao trong phân vùng đã chọn. Nếu phần mềm than phiền rằng nó không thể làm như thế, thử tùy chọn này trong một phiên bản khác.
Sau đó thì quản trị nên có quyền truy cập đến trình bao dưới người dùng
root (người chủ) trên hệ thống tập tin gốc được gắn kết
đến
/target. Quản trị cần quyền truy cập đến nội dung
của các thư mục
/boot,
/sbin và
/usr trên đĩa cứng, mà giờ nên sẵn sàng dưới
/target/boot,
/target/sbin và
/target/usr. Nếu thư mục như vậy cần được gắn kết từ
phiên bản khác, hãy làm như thế (xem
/etc/fstab để tìm
biết phân vùng nào nên gắn kết).
Nhảy tới Phần 4.8.1, “Cách tránh vấn đề này trong khi nâng cấp” và áp dụng một
của hai thủ tục đề xuất để sửa bền bỉ vấn đề này. Sau đó, gõ lệnh
exit để thoát khỏi trình bao cứu, và chọn mục
reboot để khởi động hệ thống như bình thường (đừng quên
gỡ bỏ vật chứa có khả năng khởi động).
Khởi động từ bản phát hành CD-Động (LiveCD), v.d. Debian Động, Knoppix hay Ubuntu Động.
Gắn kết phiên bản chứa thư mục
/boot. Không biết thư
mục nào thì sử dụng kết xuất của lệnh dmesg để tìm biết
nếu đĩa được biết như là
hda,
hdb,
hdc,
hdd hay
sda,
sdb,
sdc,
sdd. Một
khi biết đĩa nào cần thao tác, v.d.
sdb, chạy câu lệnh
theo đây để thấy bảng phân vùng của đĩa và tìm phân vùng đúng:
fdisk -l /dev/sdb
Giả sử đã gắn kết phân vùng đúng dưới
/mnt, và phân
vùng này chứa thư mục
/boot và nội dung của nó, hãy
chỉnh sửa tập tin
/mnt/boot/grub/menu.lst.
Tìm phần tương tự với:
## ## End Default Options ## title Debian GNU/Linux, kernel 2.6.26-1-686 root (hd0,0) kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro initrd /initrd.img-2.6.26-1-686 title Debian GNU/Linux, kernel 2.6.26-1-686 (single-user mode) root (hd0,0) kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro single initrd /initrd.img-2.6.26-1-686 ### END DEBIAN AUTOMAGIC KERNELS LIST
và thay thế mỗi chuỗi
hda,
hdb,
hdc,
hdd bằng
sda,
sdb,
sdc,
sdd như
thích hợp. Không nên sửa đổi dòng tương tự với:
root (hd0,0)
Khởi động lại hệ thống, gỡ bỏ đĩa CD-Động, và hệ thống nên khởi động đúng.
Một khi khởi động được, áp dụng một của hai thủ tục đề xuất dưới Phần 4.8.1, “Cách tránh vấn đề này trong khi nâng cấp” để sửa chữa bền bỉ vấn đề này.
Sau khi nâng cấp, có vài việc có thể làm để chuẩn bị cho bản phát hành kế tiếp.
Nếu siêu gói ảnh hạt nhân mới đã được lấy do quan hệ phụ thuộc với gói cũ, nó sẽ được đánh dấu là « đã tự động cài đặt », mà nên được sửa chữa (chạy câu lệnh):
# aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6-*' | cut -f1)
Gỡ bỏ các gói quá cũ và không dùng như diễn tả trong Phần 4.10, “Gói quá cũ”. Cũng nên xem lại những tập tin cấu hình được chúng dùng và có dịp tẩy mỗi gói để cũng gỡ bỏ các tập tin cấu hình (và dữ liệu liên quan khác).
Cũng như giới thiệu vài nghìn gói mới, lenny gỡ bỏ và bỏ sót hơn hai nghìn gói cũ đã nằm trong etch. Nó không cung cấp đường dẫn nâng cấp cho gói quá cũ. Dù không có gì ngăn cản người dùng tiếp tục sử dụng gói quá cũ, Dự án Debian thường dừng cung cấp hỗ trợ bảo mật cho nó, một năm sau khi phát hành lenny[6], và không phải thông thường cung cấp hỗ trợ khác nào đã ra đời. Khuyên quản trị thay thế mỗi gói như vậy bằng một gói xen kẽ sẵn sàng (nếu có).
Có rất nhiều lý do gói bị gỡ bỏ khỏi bản phát hành: gói đó không còn được duy trì lại bởi dự án gốc; không còn có lại một Nhà phát triển Debian quan tâm đến duy trì gói đó; chức năng được gói đó cung cấp đã bị thay thế bằng một gói phần mềm/phiên bản mới; hoặc gói đó không còn thích hợp lại với lenny do lỗi nội bộ. Trong trường hợp cuối cùng, gói đó có thể vẫn còn nằm trong bản phân phối “bất định” (unstable).
Dễ phát hiện những gói nào “quá cũ” trong một hệ thống đã cập nhật, vì giao diện quản lý gói sẽ đánh dấu chúng một cách tương ứng. Trong aptitude, danh sách các gói như vậy được hiển thị dưới tiêu đề “Gói cũ và tạo cục bộ”. dselect cung cấp một danh sách tương tự mà có thể chứa nội dung khác.
Hơn nữa, nếu người dùng đã sử dụng aptitude để tự cài đặt gói trong etch, nó đã theo dõi những gói đã cài đặt bằng tay và có khả năng đánh dấu « quá cũ » những gói được lấy chỉ do quan hệ phụ thuộc mà không còn cần thiết lại nếu một gói nào đó bị gỡ bỏ. Cũng như vậy, aptitude, khác với deborphan, sẽ không đánh dấu gói « quá cũ » mà được người dùng tự động cài đặt, như trái ngược với gói được tự động cài đặt do quan hệ phụ thuộc.
Cũng có công cụ bổ sung để tìm các gói quá cũ,
v.d. deborphan, debfoster hay
cruft. deborphan rất khuyến khích, dù
trong chế độ mặc định nó chỉ thông báo các thư viện quá cũ : những gói trong
phần thư viện “
libs” hay phần thư viện cũ
“
oldlibs” mà không dùng bởi gói khác
nhau. Không nên mù quáng gỡ bỏ những gói được tìm bởi công cụ như vậy, đặc
biệt nếu phần mềm sử dụng tùy chọn khác mặc định cũng năng nổ mà có khuynh
hướng xuất kết quả dương giả. Rất khuyên người dùng tự xem lại những gói đề
xuất gỡ bỏ (tức là nội dung, kích cỡ và mô tả về mỗi gói) trước khi thật sự
gỡ bỏ chúng.
Hệ thống Theo dõi Lỗi Debian thường cung cấp thông tin bổ sung về lý do gỡ bỏ một gói nào đó. Khuyên người dùng xem lại cả hai những báo cáo lỗi được lưu trữ về gói chính nó, và những báo cáo lỗi được lưu trữ về gói-giả ftp.debian.org.
The list of obsolete packages includes:
Một số gọi nào đó từ etch đã bị chia ra vài gọi khác nhau trong lenny, thường để cải tiến khả năng bảo tồn hệ thống. Để làm dễ dàng đường dẫn nâng cấp trong các trường hợp như vậy, lenny thường cung cấp các gói “giả”: gói trống cùng tên với gói cũ trong etch với quan hệ phụ thuộc mà gây ra cài đặt gói mới. Sau khi nâng cấp, các gói “giả” được thấy là quá cũ thì có thể được gỡ bỏ an toàn.
Hậu hết (nhưng không phải tất cả các) mô tả về gói giả cũng ngụ ý mục đích
của nó. Tuy nhiên, các mô tả gói về gói giả không phải thống nhất, do đó
cũng có ích để sử dụng deborphan với tùy chọn
--guess (đoán) để phát hiện gói giả trong hệ thống. Ghi
chú rằng một số gói giả nào đó không dự định được gỡ bỏ sau khi nâng cấp, vì
chúng được dùng để theo dõi phiên bản sẵn sàng hiện thời của một chương
trình nào đó trong thời gian.
[2] Cũng có thể tắt tính năng này bằng cách thêm tham số
panic=0 vào các tham số khởi động.
[3] Hệ thống quản lý gói Debian bình thường không cho phép Gói 1 gỡ bỏ hoặc thay thế một tập tin thuộc về Gói 2, nếu nó chưa xác định để thay thế Gói 2.
[4]
Những quy tắc ở đó được tự động tạo ra bởi văn lệnh
/etc/udev/rules.d/75-persistent-net-generator.rules để
có tên bền bỉ cho mỗi giao diện mạng. Hãy xoá liên kết tượng trưng này để
tắt chức năng đặt tên thiết bị bền bỉ cho NIC bởi
udev.
[5] Để tìm thêm thông tin về các mã lỗi của lilo, xem Tài liệu Làm thế nào Đĩa Khởi động Linux.
[6] Hoặc miễn là không có bản phát hành nữa trong khoảng thời gian đó. Bình thường chỉ hai bản phát hành ổn định được hỗ trợ nhau vào một lúc nào đó.

markdown:
**Mục lục**
aptitudevà/hay
apt
aptdanh sách các gói tự động cài đặt của
aptitude
Đang đợi hệ thống tập tin gốc
Trước khi nâng cấp, khuyên người dùng cũng đọc thông tin trong
[Chương 5, Vấn đề lenny cần ghi nhớ](ch-information.vi.html). Chương đó diễn tả các vấn đề có thể gặp mà không
phải liên quan trực tiếp đến quá trình nâng cấp, nhưng vẫn còn có thể cần
biết trước khi bắt đầu.
Trước khi nâng cấp hệ thống, rất khuyên người dùng tạo một bản sao lưu hoàn toàn, hoặc ít nhất sao lưu bất kỳ dữ liệu hay thông tin cấu hình không nên mất. Các công cụ và quá trình nâng cấp vẫn hơi tin cậy, nhưng một sự thất bại phần cứng ở giữa việc nâng cấp có thể gây ra một hệ thống rất bị hại.
Dữ liệu chính nên sao lưu là nội dung của thư mục
/etc,
/var/lib/dpkg,
/var/lib/aptitude/pkgstates và kết xuất của câu lệnh
dpkg --get-selections "*" (hai dấu nháy kép vẫn đáng kể).
Quá trình nâng cấp chính nó không sửa đổi gì trong thư mục
/home (thư mục chính của mỗi người dùng). Tuy nhiên,
một số ứng dụng nào đó (v.d. thuộc về bộ ứng dụng Mozilla, và môi trường
GNOME and KDE) được biết là ghi đè lên thiết lập người dùng đã tồn tại bằng
giá trị mặc định mới khi một phiên bản mới của ứng dụng được khởi chạy đầu
tiên bởi một người dùng. Để phòng ngừa, khuyên người dùng sao lưu các tập
tin và thư mục bị ẩn (“tập tin chấm”) trong thư mục chính của
mỗi người dùng. Bản sao lưu này có thể giúp phục hồi hoặc tạo lại thiết lập
cũ. Quản trị cũng có thể muốn cho các người dùng biết về trường hợp này.
Mỗi thao tác cài đặt gói phải được chạy với quyền siêu người dùng: có nên
đăng nhập dưới
root (người chủ) hoặc sử dụng lệnh
**su** hay **sudo** để lấy được quyền truy cập
cần thiết.
Việc nâng cấp có một số điều kiện tiên quyết: người dùng nên kiểm tra trước khi thật thực hiện tiến trình nâng cấp.
Phiên bản lenny của
glibc
[
không hoạt động được với hạt nhân cũ hơn ]
2.6.8 trên bất
cứ kiến trúc nào, và một số kiến trúc nào đó có nhiều nhu cầu hơn. Rất
khuyên quản trị nâng cấp lên và thử một hạt nhân etch phiên bản
2.6.18 hay
2.6.24, hoặc một hạt nhân
riêng ít nhất phiên bản
2.6.18 trước khi khởi chạy tiến
trình nâng cấp.
Khuyên quản trị thông báo trước cho mọi người dùng biết về bất kỳ quá trình
nâng cấp dự định, dù người dùng đang truy cập đến hệ thống thông qua một kết
nối
**ssh** nên thấy ít trong khi nâng cấp, và nên có thể
tiếp tục làm việc.
Muốn thực hiện thêm bước phòng ngừa thì sao lưu hoặc tháo gắn kết phân vùng
/home) trước khi nâng cấp.
Nâng cấp lên lenny thì rất có thể là cũng cần phải nâng cấp hạt nhân, do đó cần phải khởi động lại hệ thống (bình thường sau khi nâng cấp xong).
Do rất nhiều thay đổi trong hạt nhân (so etch với lenny) đối với trình điều khiển, phát hiện phần cứng và đặt tên và sắp đặt các tập tin thiết bị, thật sự rủi ro là người dùng có thể gặp khó khăn trong việc khởi động lại hệ thống sau khi nâng cấp. Rất nhiều vấn đề có thể gặp đã được diễn tả trong chương này, và những chương kế tiếp của Ghi chú Phát hành này.
Vì lý do đó hợp lý là người dùng hay quản trị đảm bảo có thể phục hồi nếu hệ thống không khởi động lại được hoặc, đối với hệ thống quản lý từ xa, không chạy mạng được.
Nếu quản trị nâng cấp từ xa qua một liên kết
**ssh**, rất
khuyên quản trị cũng thực hiện những bước phòng ngừa cần thiết để có khả
năng truy cập đến máy phục vụ qua một thiết bị nối tiếp từ xa. Vẫn có thể
là, sau khi nâng cấp hạt nhân và khởi động lại hệ thống, một số thiết bị sẽ
bị thay tên (như diễn tả trong [Phần 4.6.2, “Số thứ tự thiết bị khác”](ch-upgrading.vi.html#device-reorder)) thì quản
trị cần phải sửa chữa cấu hình hệ thống thông qua một bàn giao tiếp cục
bộ. Hơn nữa, nếu hệ thống bị tình nguyện cờ khởi động lại ở giữa quá trình
nâng cấp, quản trị có thể cần phải phục hồi dùng một bàn giao tiếp cục bộ.
Cái hiển nhiện nhất để thử đầu tiên để khởi động lại bằng hạt nhân cũ. Tuy nhiên, vì các lý do khác nhau diễn tả ở nơi khác của tài liệu này, sự thử này không phải đảm bảo thành công.
Nếu nó không thành công, quản trị cần một phương pháp khác để khởi động hệ
thống để truy cập và sửa chữa nó. Một lựa chọn là sử dụng một ảnh cứu đặc
biệt hay một đĩa CD Linux Động. Sau khi khởi động từ đó, quản trị nên có khả
năng gắn kết hệ thống tập tin gốc và
chroot vào nó để xem
xét và sửa chữa vấn đề.
Một lựa chọn khác có thể khuyến khích là sử dụng
*chế độ
cứu* của Bộ Cài Đặt Debian lenny. Lợi ích khi sử dụng bộ
cài đặt là người dùng có thể chọn trong nhiều phương pháp cài đặt khác nhau
một phương pháp riêng lẻ thích hợp nhất với trường hợp đó. Để tìm thêm thông
tin, xem phần “Phục hồi một hệ thống bị hỏng” trong Chương 8
của [Sổ tay Cài đặt](http://www.debian.org/releases/stable/installmanual) (dịch sang
tiếng Việt) và [Hỏi Đáp Cài đặt
Debian](http://wiki.debian.org/DebianInstaller/FAQ).
Công cụ
initramfs-tools
[ bao gồm một
trình bao gỡ lỗi] [ 2] trong mỗi initrd nó tạo. Nếu (ví dụ) initrd không thể gắn kết hệ
thống tập tin gốc, nó sẽ mở trình bao gỡ lỗi này mà có sẵn các lệnh cơ bản
để tìm vết của vấn đề và (có thể) sửa chữa nó.
Các cái cơ bản cần kiểm tra: có những tập tin thiết bị đúng trong thư mục
/dev; những mô-đun nào được nạp (
cat
/proc/modules); kết xuất của lệnh
**dmesg** về lỗi
nạp trình điều khiển. Kết xuất của **dmesg** cũng hiển thị
tập tin thiết bị nào được gán cho đĩa nào; quản trị cũng nên so thông tin đó
với kết xuất của câu lệnh
echo $ROOT để kiểm tra hệ thống
tập tin gốc nằm trên thiết bị mong đợi.
Nếu quản trị có phải sửa chữa được vấn đề, việc gõ lệnh thoát
exit sẽ thoát khỏi trình bao gỡ lỗi và tiếp tục lại tiến
trình khởi động ở điểm thời nó thất bại trước. Tất nhiên, quản trị cũng cần
phải sửa chữa vấn đề cơ sở và tạo lại initrd để mà khởi động được về sau.
Việc nâng cấp bản phân phối nên được làm hoặc cục bộ từ một bàn giao tiếp ảo
chế độ văn bản (hay một thiết bị cuối nối tiếp được kết nối trực tiếp), hoặc
từ xa thông qua một liên kết
**ssh**.
Để tăng hệ số an toàn khi nâng cấp từ xa, khuyên quản trị chạy tiến trình
nâng cấp trên bàn giao tiếp ảo được chương trình
**screen**
cung cấp, mà hiệu lực chức năng tái kết nối an toàn và đảm bảo tiến trình
nâng cấp không phải bị gián đoạn thậm chí nếu quá trình kết nối từ xa không
thành công.
![]()
|Quan trọng|
Quá trình nâng cấp diễn tả trong chương này đã được thiết kế cho việc nâng cấp từ hệ thống etch « thuần »: hệ thống không chứa gói thuộc nhóm ba. Để nâng cấp một cách tin cậy nhất, quản trị cũng có thể gỡ bỏ các gói nhóm ba khỏi hệ thống trước khi bắt đầu nâng cấp.
Thủ tục này cũng giả sử hệ thống đã được cập nhật lên bản phát hành điểm mới
nhất của etch. Không hay chưa chắc thì quản trị nên theo những
hướng dẫn trong
[Phần A.1, “Nâng cấp hệ thống etch”](ap-old-stuff.vi.html#old-upgrade).
Trong một số trường hợp nào đó, sử dụng
**apt-get** thay cho
**aptitude** để cài đặt gói có thể làm cho
**aptitude** thấy một gói nào đó là “chưa dùng”
và định thời nó bị gỡ bỏ. Thông thường, quản trị nên kiểm tra hệ thống vẫn
“sạch” và được cập nhật hoàn toàn trước khi tiếp tục nâng cấp.
Do đó, quản trị nên kiểm tra có hành vi bị hoãn trong bộ quản lý gói
**aptitude**. Vẫn có một gói định thời gỡ bỏ hay cập nhật
trong bộ quản lý gói thì nó có thể ảnh hưởng âm đến quá trình nâng cấp. Ghi
chú rằng chỉ có thể sửa chữa trường hợp này nếu tập tin liệt kê các nguồn
sources.list vẫn còn chỉ tới
*etch*;, không phải tới bản *ổn
định* (stable) hay *lenny*; xem [Phần A.2, “Kiểm tra danh sách nguồn”](ap-old-stuff.vi.html#old-sources).
Để thực hiện thủ tục xem lại này, hãy khởi chạy
**aptitude**
trong “chế độ trực quan” và bấm phím **g**
(“Đi”). Nếu nó hiển thị hành vi nào, quản trị nên xem lại và
sửa chữa hoặc thực hiện chúng. Không có hành vi đề xuất thì chương trình
hiển thị một thông điệp: “Không có gói nào được định cài đặt, gỡ bỏ
hoặc nâng cấp”.
Nếu người dùng đã cấu hình APT để cài đặt một số gói nào đó từ một bản phát
hành khác với bản ổn định (stable), v.d. từ bản thử (testing), thì có lẽ
người dùng cần phải sửa đổi cấu hình ghim phiên bản trong APT (cất giữ trong
/etc/apt/preferences) để cho phép nâng cấp gói lên
phiên bản trong bản phát hành ổn định mới. Có thể tìm thêm thông tin về chức
năng ghim phiên bản APT trong apt_preferences(5).
Bất chấp phương pháp dùng để nâng cấp, khuyên người dùng trước tiên kiểm tra trạng thái về tất cả các gói, và thẩm tra mọi gói đều có tình trạng có thể nâng cấp. Theo đây có câu lệnh sẽ hiển thị gói nào có trạng thái « Nửa cài đặt » hay « Lỗi cấu hình » hay bất cứ trạng thái lỗi nào.
# dpkg --audit
Cũng có thể kiểm tra trạng thái về tất cả các gói trên hệ thống dùng
**dselect**, **aptitude**, hay câu lệnh như
# dpkg -l | pager
hay
# dpkg --get-selections "*" > ~/curr-pkgs.txt
Có nên gỡ bỏ bất kỳ tình trạng giữ lại trước khi nâng cấp. Nếu gói nào chủ yếu để nâng cấp vẫn còn bị giữ lại, thì việc nâng cấp sẽ không thành công.
Ghi chú rằng
**aptitude** sử dụng một phương pháp khác để
đăng ký các gói bị giữ lại, so với **apt-get** và
**dselect**. Người dùng có thể tìm những gói bị giữ lại
trong **aptitude** dùng câu lệnh
# aptitude search "~ahold" | grep "^.h"
Muốn kiểm tra những gói nào bị giữ lại trong
**apt-get** thì
dùng câu lệnh
# dpkg --get-selections | grep hold
Nếu người dùng đã sửa đổi và biên dịch lại gói nào một cách cục bộ, vẫn không thay đổi tên nó hoặc đặt thời điểm vào phiên bản, người dùng phải đặt tình trạng giữ lại cho nó, để ngăn cản nó được nâng cấp.
Trong
**aptitude**, tình trạng gói “giữ lại” có
thể được thay đổi dùng câu lệnh
# aptitude hold
tên_gói
Thay thế từ
hold (giữ lại) bằng
unhold
(bỏ giữ) để bỏ đặt tình trạng “giữ lại”.
Vẫn có gì cần sửa chữa thì người dùng nên kiểm tra tập tin
sources.list vẫn còn tham chiếu đến etch
như diễn tả trong
[Phần A.2, “Kiểm tra danh sách nguồn”](ap-old-stuff.vi.html#old-sources).
Nếu tập tin
/etc/apt/sources.list chứa phần
proposed-updates, người dùng nên gỡ bỏ tập tin này trước
khi thử nâng cấp hệ thống. Đây là một bước phòng ngừa để giảm sự có thể bị
xung đột.
Nếu hệ thống chứa gói nào khác Debian, ghi chú rằng các gói như vậy có thể
bị gỡ bỏ trong quá trình nâng cấp, do quan hệ phụ thuộc bị xung đột. Nếu
những gói này đã được cài đặt bằng cách thêm một kho gói bổ sung vào tập tin
/etc/apt/sources.list, người dùng nên kiểm tra nếu kho
gói đó cũng cung cấp các gói được biên dịch cho lenny, và sửa đổi
dòng nguồn một cách tương ứng, cùng lúc với sửa đổi các dòng nguồn về gói
Debian.
Hệ thống etch có lẽ cũng chứa phiên bản “mới”
chuyển ngược không chính thức của gói
*có phải* thuộc về
Debian. Gói như vậy rất có thể gây ra vấn đề trong quá trình nâng cấp, vì
kết quả là hai tập tin bị xung đột nhau [ 3].
backports.org là một kho gói bán chính thức duy trì bởi
các nhà phát triển Debian GNU/Linux, mà cung cấp các gói mới cho bản phát hành ổn
định (stable), dựa vào xây dựng lại các gói từ kho gói “thử”
(testing).
Kho
backports.org chứa chính các gói từ bản
“thử” (testing) mà vẫn có số thứ tự phiên bản bị giảm, để bảo
vệ đường dẫn nâng cấp từ bản chuyển ngược etch lên
lenny. Tuy nhiên, có chỉ vài gói chuyển ngược được tạo từ bản
“bất định” (unstable): các bản cập nhật bảo mật và những ngoại
lệ Firefox, hạt nhân Linux, OpenOffice.org và X.Org.
If you do not use one of these exceptions, you can safely upgrade to
lenny. If you use one of these exceptions, set the
Pin-Priority (see apt_preferences(5)) temporarily to
1001 for all packages
from lenny, and you should be able to do a safe dist-upgrade too.
Để ngăn cản
**aptitude** gỡ bỏ một số gói nào đó mà được lấy
do quan hệ phụ thuộc, người dùng cần phải tự bỏ dấu *tự
động* khỏi mỗi gói. Trong bản cài đặt môi trường đồ họa, trường
hợp này bao gồm OpenOffice và Vim:
# aptitude unmarkauto openoffice.org vim
Và các ảnh hạt nhân 2.6 được cài đặt dùng một siêu gói hạt nhân:
# aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6.*' | cut -f1)
![]()
|Ghi chú|
Cũng có thể xem lại những gói đánh dấu
# aptitude search '~i~M'
Trước khi khởi chạy tiến trình nâng cấp, người dùng cần phải thiết lập tập
tin cấu hình
apt
[ về danh sách các
gói: ]
/etc/apt/sources.list.
apt
[ sẽ xem xét mọi gói được tìm
thông qua một dòng “]
deb”, và cài đặt gói có
số thứ tự phiên bản cao nhất, cũng gán quyền ưu tiên cho dòng đầu của tập
tin (do đó khi có nhiều địa chỉ máy nhân ban, bình thường đặt tên một đĩa
cứng cục bộ, sau đó các đĩa CD-ROM, và các máy nhân bản
HTTP/FTP).
![]()
|Mẹo|
Có lẽ người dùng cần thêm một ngoại lệ kiểm tra GPG cho
các đĩaDVD và CD-ROM. Thêm vào tập tin
cấu hình
APT::Authentication::TrustCDROM "true";
Tuy nhiên, dòng này không phù hợp với tập tin ảnh đĩa DVD/CD-ROM.
Mỗi bản phát hành có một tên mã (v.d.
etch,
lenny) và một tên trạng thái (tức là
oldstable [ổn định cũ],
stable [ổn
định],
testing [thử],
unstable [bất
định]). Tham chiếu đến một bản phát hành theo tên mã có lợi ích là dễ phân
biệt các bản phát hành khác nhau. Người dùng có thể theo dõi các thông báo
phát hành tìm tên mã mới và tự cập nhật hệ thống. Tuy nhiên, người dùng phân
biệt theo tên trạng thái sẽ thấy rất nhiều bản cập nhật gói ngay khi bản mới
được phát hành.
Cấu hình mặc định được thiết lập để cài đặt từ các máy phục vụ Debian chính,
nhưng người dùng cũng có thể sửa đổi tập tin
/etc/apt/sources.list để sử dụng máy nhân bản khác, tốt
hơn một máy nhân bản gần chỗ người dùng trên mạng.
Có thể tìm các địa chỉ máy nhân bản HTTP/FTP Debian ở
[http://www.debian.org/distrib/ftplist](http://www.debian.org/distrib/ftplist) (xem phần “list of Debian
mirrors” [danh sách các máy nhân bản Debian]). Máy nhân bản HTTP
thường chạy nhanh hơn máy nhân bản FTP.
Ví dụ, giả sử máy nhân bản Debian gần nhất là
http://mirrors.kernel.org. Khi xem xét nó dùng trình duyệt
Web hay một chương trình FTP, người dùng sẽ thấy những thư mục chính được
sắp đặt như thế:
http://mirrors.kernel.org/debian/dists/lenny/main/binary-powerpc/... http://mirrors.kernel.org/debian/dists/lenny/contrib/binary-powerpc/...
Để sử dụng máy nhân bản này với
apt
[,
người dùng nên thêm vào tập tin ]
sources.list dòng này:
deb http://mirrors.kernel.org/debian lenny main contrib
Ghi chú rằng đoạn «
dists » được thêm ngầm, và các đối số
đằng sau tên bản phát hành được dùng để mở rộng đường dẫn ra nhiều thư mục.
Sau khi thêm các nguồn mới, hãy tắt mỗi dòng
“
deb” đã tồn tại trong
sources.list bằng cách ghi một dấu thăng
(
#) vào trước.
Thay vào sử dụng máy nhân bản HTTP/FTP, người dùng cũng có thể sửa đổi tập
tin
/etc/apt/sources.list để sử dụng kho nhân bản trên
một đĩa cục bộ (có thể gắn kết thông qua NFS).
Ví dụ, kho nhân bản gói có thể nằm dưới
/var/ftp/debian/, với các thư mục chính:
/var/ftp/debian/dists/lenny/main/binary-powerpc/... /var/ftp/debian/dists/lenny/contrib/binary-powerpc/...
Để sử dụng kho cục bộ này với
apt
[,
hãy thêm vào tập tin ]
sources.list dòng này:
deb file:/var/ftp/debian lenny main contrib
Ghi chú rằng đoạn «
dists » được thêm ngầm, và các đối số
đằng sau tên bản phát hành được dùng để mở rộng đường dẫn ra nhiều thư mục.
Sau khi thêm các nguồn mới, hãy tắt mỗi dòng
“
deb” đã tồn tại trong
sources.list bằng cách ghi một dấu thăng
(
#) vào trước.
Nếu người dùng
*chỉ* muốn sử dụng các đĩa CD, hãy ghi chú
tắt (đặt
# vào trước) những dòng
“
deb” đã tồn tại trong tập tin
/etc/apt/sources.list.
Kiểm tra tập tin
/etc/fstab chứa một dòng hiệu lực gắn
kết ổ đĩa CD ở điểm lắp
/cdrom (điểm lắp
/cdrom chính xác cần thiết cho
**apt-cdrom**). Ví dụ, nếu
/dev/hdc là ổ
đĩa CD,
/etc/fstab nên chứa một dòng như thế:
/dev/hdc /cdrom auto defaults,noauto,ro 0 0
Ghi chú rằng
*không cho phép khoảng cách* nằm giữa các từ
defaults,noauto,ro trong trường thứ tư.
Để thẩm tra chức năng, nạp một đĩa CD và thử chạy:
# mount /cdrom # câu lệnh này gắn kết đĩa CD tới điểm lắp # ls -alF /cdrom # câu lệnh này nên hiển thị thư mục gốc của đĩa CD # umount /cdrom # câu lệnh này sẽ tháo gắn kết đĩa CD
Sau đó thì chạy:
# apt-cdrom add
cho mỗi đĩa CD nhị phân Debian, để thêm dữ liệu về mỗi đĩa CD vào co sở dữ liệu của APT.
Phương pháp khuyến khích để nâng cấp từ một bản phát hành Debian GNU/Linux trước là
sử dụng công cụ quản lý gói
**aptitude**. Chương trình này
cài đặt gói một cách an toàn chạy trực tiếp **apt-get**.
Đừng quên gắn kết tất cả các phân vùng cần thiết (đặc biệt phiên bản gốc và
/usr) với quyền đọc-ghi, dùng một câu lệnh như :
# mount -o remount,rw /
điểm_lắp
Sau đó thì người dùng nên kiểm tra những mục nhập nguồn APT (trong
/etc/apt/sources.list) tham chiếu đến hoặc
“
lenny” hoặc
“
stable”. Không nên có nguồn nào vẫn còn chỉ
tới etch.
![]()
|Ghi chú|
Dòng nguồn cho một đĩa CD thường tham chiếu đến
“
Rất khuyên người dùng sử dụng chương trình
**/usr/bin/script** để thu một bản sao của phiên chạy nâng
cấp. Như thế, nếu một vấn đề xảy ra, có một bản sao mọi hành vi, và nếu cần,
người dùng có thể cung cấp thông tin chính xác trong một báo cáo lỗi hay báo
cáo nâng cấp. Để bắt đầu thu, hãy gõ câu lệnh:
# script -t 2>~/upgrade-lenny.time -a ~/upgrade-lenny.script
hay tương tự. Đừng để bản sao vào một thư mục tạm thời như
/tmp hay
/var/tmp (các tập tin
trong hai thư mục này có thể bị xoá trong khi nâng cấp hoặc khi nào khởi
động lại).
Bản sao này cũng cho phép xem lại thông tin đã cuộn qua màn hình. Chỉ chuyển
đổi sang VT2 (dùng tổ hợp phím
**Alt**+ **F2**) và, sau
khi đăng nhập, dùng câu lệnh
less -R
~root/upgrade-lenny.script để xem tập tin đó.
Sau khi nâng cấp xong, người dùng có thể dừng chạy
**script**
bằng cách gõ lệnh thoát
exit vào dấu nhắc.
Có đặt cờ
*-t* trong câu lệnh **script**
nói trên thì người dùng cũng có thể sử dụng chương
trình **scriptreplay** để phát lại toàn bộ phiên chạy.
# scriptreplay ~/upgrade-lenny.time ~/upgrade-lenny.script
Trước tiên nên lấy danh sách các gói sẵn sàng cho bản phát hành mới. Việc này được làm bằng cách chạy câu lệnh cập nhật:
# aptitude update
Việc chạy câu lệnh này lần đầu tiên cập nhật các nguồn mới sẽ in ra một số cảnh báo liên quan đến tính sẵn sàng của các nguồn. Những cảnh báo này vô hại và chỉ xuất hiện một lần.
Trước khi nâng cấp hệ thống, người dùng cần phải kiểm tra có đủ sức chứa còn
lại trên đĩa cứng, đặc biệt khi khởi chạy tiến trình nâng cấp hệ thống đầy
đủ diễn tả trong
[Phần 4.5.7, “Nâng cấp phần hệ thống còn lại”](ch-upgrading.vi.html#upgrading-other). Trước tiên, bất cứ gói
nào cần cài đặt được lấy từ mạng và cất giữ trong thư mục
/var/cache/apt/archives (cũng trong thư mục con
partial/ trong khi tải về), do đó người dùng cần phải
kiểm tra có đủ sức chứa còn lại trên phân vùng đó (phân vùng hệ thống tập
tin chứa
/var) để tải về tạm thời tất cả các gói cần
cài đặt vào hệ thống. Sau khi tải về, rất có thể là cần thêm sức chứa trống
trong các phiên bản hệ thống tập tin khác để cài đặt cả hai các gói đã nâng
cấp (mà có thể chứa các tập tin nhị phân lớn hơn hay dữ liệu bổ sung) và các
gói mới được lấy cho quá trình nâng cấp. Nếu hệ thống không có đủ sức chứa
trống, kết quả có thể là một quá trình nâng cấp chưa xong, một trường hợp có
thể khó phục hồi.
Cả hai
**aptitude** và
apt
[ sẽ hiển thị thông tin chi tiết về sức chứa
trống trên đĩa mà cần thiết để cài đặt. Trước khi khởi chạy tiến trình nâng
cấp, người dùng có thể thấy sự ước lượng này bằng cách chạy câu lệnh:
]
# aptitude -y -s -f --with-recommends dist-upgrade [ ... ] XXX gói được nâng cấp, XXX mới được cài đặt, XXX cần gỡ bỏ và XXX không được nâng cấp. Cần phải lấy xx.xMB/yyyMB kho. Sau khi giải nén AAAMB sẽ được chiếm. Nên tải về / cài đặt/ gỡ bỏ các gói.
![]()
|Ghi chú|
Việc chạy câu lệnh này ở đầu của quá trình nâng cấp cũng có thể xuất một
lỗi, vì lý do diễn tả trong các phần kế tiếp. Trong trường hợp đó, người
dùng cần phải đợi đến khi hoàn tất quá trình nâng cấp hệ thống tối thiểu
(xem
Không có đủ sức chứa để nâng cấp thì trước tiên người dùng phải giải phóng thêm sức chứa. Ví dụ :
Gỡ bỏ các gói được tải về trước đây để cài đặt (trong thư mục
/var/cache/apt/archives). Làm sạch vùng nhớ tạm gói
bằng cách chạy câu lệnh
**apt-get clean** hay
**aptitude clean** để gỡ bỏ tất cả các tập tin gói đã tải về
trước.
Gỡ bỏ các gọi bị quên. Nếu người dùng đã cài đặt gói
popularity-contest
[, cũng có thể sử dụng
] **popcon-largest-unused** để liệt kê những gói không dùng mà
chiếm sức chứa nhiều nhất. Cũng có thể sử dụng **deborphan**
hay **debfoster** để tìm các gói quá cũ (xem [Phần 4.10, “Gói quá cũ”](ch-upgrading.vi.html#obsolete) ). Hoặc người dùng có thể khởi chạy
**aptitude** trong “chế độ trực quan” và tìm các
gói quá cũ dưới tiêu đề “Gói cũ và tạo cục bộ”.
Gỡ bỏ các gói chiếm quá nhiều sức chứa mà hiện thời không phải cần thiết
(lúc nào cũng có thể phục hồi sau khi nâng cấp). Người dùng có thể liệt kê
những gói chiếm nhiều sức chứa nhất trên đĩa, dùng
**dpigs**
(sẵn sàng trong gói
debian-goodies
[)
hay ] **wajig** (chạy câu lệnh
wajig size).
You can list packages that take up most of the disk space with
aptitude
[. Start ] **aptitude**
into “visual mode”, select
→ (this menu entry is available only after
etch version), press **l** and enter
~i,
press
**S** and enter
~installsize, then it
will give you nice list to work with. Doing this after upgrading
aptitude
[ should give you access to
this new feature.
]
Gỡ bỏ khỏi hệ thống các bản dịch và tập tin địa hoá mà không cần
thiết. Người dùng có thể cài đặt gói
localepurge
[ và cấu hình nó để giữ trong hệ thống
chỉ một số miền địa phương đã chọn (v.d. tiếng Việt, tiếng Anh và tiếng
Nga). Thủ tục này sẽ giảm sức chứa trên đĩa được chiếm ở
]
/usr/share/locale.
Tạm thời di chuyển sang một hệ thống khác, hoặc gỡ bỏ hẳn, các bản ghi hệ
thống nằm dưới
/var/log/.
Dùng một thư mục
/var/cache/apt/archives tạm thời: có
thể đặt một thư mục nhớ tạm mà tạm thời, từ một hệ thống khác (vật chứa
USB, đĩa cứng tạm thời, hệ thống đang được dùng v.v.).
![]()
|Ghi chú|
Không nên dùng một sự gắn kết NFS vì kết nối qua mạng có thể bị gián đoạn trong quá trình nâng cấp.
Ví dụ, nếu có một ổ đĩa USB được gắn kết đến
/media/usbkey:
gỡ bỏ các gói đã tải về trước đây để cài đặt:
# apt-get clean
sao chép thư mục
/var/cache/apt/archives sang vật chứa
USB:
# cp -ax /var/cache/apt/archives /media/usbkey/
gắn kết thư mục nhớ tạm vẫn tạm thời đến thư mục hiện thời:
# mount --bind /media/usbkey/archives /var/cache/apt/archives
sau khi nâng cấp thì phục hồi thư mục
/var/cache/apt/archives gốc:
# umount /media/usbkey/archives
gỡ bỏ
/media/usbkey/archives còn lại.
Người dùng có thể tạo thư mục nhớ tạm vẫn tạm thời trên hệ thống tập tin nào được gắn kết trên hệ thống.
Ghi chú rằng để gỡ bỏ gói một cách an toàn, khuyên người dùng chuyển đổi tập
tin
sources.list về etch như diễn tả trong
[Phần A.2, “Kiểm tra danh sách nguồn”](ap-old-stuff.vi.html#old-sources).
Several bug reports have shown that the versions of the
aptitude
[ and ]
apt
[ packages in etch are often unable to handle
the upgrade to lenny. In lenny, ]
apt
[ is better at dealing with complex chains of
packages requiring immediate configuration and ]
aptitude
[ is smarter at searching for solutions
to satisfy the dependencies. These two features are heavily involved during
the dist-upgrade to lenny, so it is necessary to upgrade these two
packages before upgrading anything else.
]
The following command will upgrade both
aptitude
[ and ]
apt
[:
]
# aptitude install aptitude apt dpkg
This step will also automatically upgrade
libc6
[ and ]
locales
[. At this point, some running services
will be restarted, including ] **xdm**, **gdm**
and **kdm**. As a consequence, local X11 sessions might be
disconnected.
![]()
|Upgrading with |
Please note that using
If you want to perform the upgrade with
# apt-get install apt
Note that you will have to adapt other
Phần mềm
aptitude
[ bảo tồn một danh
sách các gói đã được tự động cài đặt (v.d. do quan hệ phụ thuộc với một gói
khác). Trong lenny, ]
apt
[ cũng
có tính năng này.
]
Lần đầu tiên chạy phiên bản lenny của
aptitude
[ thì nó đọc danh sách các gói tự động
cài đặt, và chuyển đổi nó để sử dụng với phiên bản lenny của
]
apt
[. Người dùng đã cài đặt
]
aptitude
[ về trước thì cần phải chạy
ít nhất một câu lệnh ] **aptitude** để sơ khởi quá trình chuyển
đổi này. Thí dụ, tìm kiếm một gói không tồn tại:
# aptitude search "?false"
Do một số sự xung đột gói giữa etch và lenny, việc chạy
câu lệnh
aptitude dist-upgrade một cách trực tiếp sẽ
thường gỡ bỏ rất nhiều gói mà người dùng muốn giữ. Vì lý do đó, khuyên người
dùng chạy một quá trình nâng cấp có hai phần riêng: trước tiên một việc nâng
cấp tối thiểu để giải quyết trường hợp xung đột, và sau đó một việc
dist-upgrade đầy đủ.
Trước tiên, chạy câu lệnh:
# aptitude safe-upgrade
Kết quả là nâng cấp những gói có thể nâng cấp được mà không cần gỡ bỏ hay cài đặt gói khác nào.
Bước kế tiếp vẫn biến đổi phụ thuộc vào tập hợp gói được cài đặt hiện thời. Ghi chú Phát hành này chỉ có thể cung cấp lời khuyên chung về phương pháp nên dùng, nhưng nếu chưa chắc, rất khuyên người dùng xem lại danh sách các gói nên gỡ bỏ tùy theo mỗi phương pháp, trước khi tiếp tục.
Phương pháp này có thể gỡ bỏ một số gói thường dùng, bao gồm
base-config
[, ]
hotplug
[, ]
xlibs
[, ]
netkit-inetd
[, ]
python2.3
[, ]
xfree86-common
[ và ]
xserver-common
[. Để tìm thêm thông tin về những
gói đã lỗi thời trong lenny, xem ] [Phần 4.10, “Gói quá cũ”](ch-upgrading.vi.html#obsolete).
Sau đó thì có thể tiếp tục phần chính của quá trình nâng cấp. Chạy câu lệnh:
# aptitude dist-upgrade
Câu lệnh này sẽ nâng cấp hoàn toàn hệ thống, tức là cài đặt phiên bản mới nhất của mọi gói sẵn sàng, và giải quyết mọi quan hệ phụ thuộc có thể biến đổi trong bản phát hành khác nhau. Nếu cần thiết, nó sẽ cài đặt một số gói mới (thường là phiên bản thư viện mới, hay gói bị thay tên), và gỡ bỏ gói quá cũ nào bị xung đột.
Khi nâng cấp từ một bộ đĩa CD/DVD, người dùng sẽ được nhắc nạp một đĩa nào đó ở vài điểm thời trong quá trình nâng cấp. Có lẽ cần phải nạp nhiều lần cùng một đĩa, do các gói liên quan đến nhau mà được chia ra các đĩa khác nhau.
Gói được cài đặt hiện thời mà không thể nâng cấp mà không thay đổi trạng
thái cài đặt của một gói khác, sẽ còn lại ở phiên bản hiện thời (đánh dấu là
“giữ lại”). Vẫn còn có thể cài đặt phiên bản mới bằng cách sử
dụng
**aptitude** để tự chọn những gói phiên bản mới, hoặc
bằng cách thử chạy câu lệnh
aptitude -f install
để cài đặt mỗi gói phiên bản
mới.
tên_gói
Nếu một thao tác dùng
**aptitude**,
**apt-get** hay **dpkg** không thành công và
xuất lỗi
E: Hết chỗ tạo sơ đồ bộ nhớ động (Dynamic MMap)
thì không đủ sức chứa nhớ tạm mặc định. Quản trị có thể giải quyết vấn đề
này bằng cách gỡ bỏ hay tắt ghi chú các dòng không cần thiết trong tập tin
/etc/apt/sources.list, hoặc tăng kích cỡ vùng nhớ tạm
(đặt
APT::Cache-Limit trong tập tin cấu hình
/etc/apt/apt.conf. Câu lệnh theo đây sẽ đặt một giá trị
nên đủ để nâng cấp:
# echo 'APT::Cache-Limit "12500000";' >> /etc/apt/apt.conf
Câu lệnh này giả sử chưa đặt biến này trong tập tin đó.
Đôi khi cần phải hiệu lực tùy chọn
APT::Force-LoopBreak
trong APT để có khả năng tạm thời gỡ bỏ một gói chủ yếu do một vòng lặp Xung
đột/Phụ thuộc trước.
**aptitude** sẽ thông báo về vòng lặp
này và hủy bỏ quá trình nâng cấp. Vẫn còn có thể giải quyết vấn đề này bằng
cách xác định tùy chọn
-o APT::Force-LoopBreak=1 trên
dòng lệnh
**aptitude**.
Một trường hợp ít xảy ra là hệ thống có cấu trúc quan hệ phụ thuộc quá bị
hỏng mà cần quản trị tự can thiệp. Có thể sử dụng
**aptitude** hoặc
# dpkg --remove
tên_gói
để loại trừ một số gói phạm lỗi, hoặc
# aptitude -f install # dpkg --configure --pending
Trong trường hợp rất khó, bạn có thể cần phải ép buộc cài đặt lại, dùng một câu lệnh như
# dpkg --install
/đường/dẫn/tới/tên_gói.deb
Trường hợp tập tin bị xung đột không nên xảy ra khi nâng cấp từ một hệ thống etch “thuần”, nhưng vẫn còn có thể xảy ra nếu hệ thống chứa bản chuyển ngược không chính thức. Sự xung đột giữa các tập tin sẽ gây ra một lỗi như :
Đang giải nén
(từ
<tên_gói1>
) ... dpkg: gặp lỗi khi xử lý
<tập_tin_gói1>
(--install): đang thử ghi đè lên `
<tên_gói1>
', mà cũng nằm trong gói
<tên_tập_tin>
dpkg-deb: tiến trình con dán bị tín hiệu giết (Ống dẫn bị vỡ) Gập lỗi khi xử lý:
<tên_gói2>
<tên_gói1>
Quản trị cũng có thể thử giải quyết một trường hợp các tập tin bị xung đột
bằng cách ép buộc gỡ bỏ gói có tên trên dòng
*cuối cùng*
của thông điệp lỗi:
# dpkg -r --force-depends
tên_gói
Sau khi sửa chữa, quản trị nên có thể tiếp tục lại quá trình nâng cấp bằng
cách lặp lại những câu lệnh
**aptitude** diễn tả trước.
Trong khi nâng cấp, tiến trình sẽ hỏi câu về cách cấu hình (lại) vài
gói. Khi quá trình hỏi nếu tập tin nào trong thư mục
/etc/init.d hay
/etc/terminfo,
hoặc tập tin
/etc/manpath.config, nên được thay thế
bằng phiên bản của phần mềm quản lý gói, thường nên đồng ý để đảm bảo hệ
thống vẫn thống nhất. Lúc sau, cũng có thể hoàn nguyên mỗi phiên bản cũ, vì
nó sẽ được lưu với một phần mở rộng
.dpkg-old.
Chưa chắc nên làm gì thì viết tên của gói hay tập tin đó, và tháo gỡ trường
hợp vào một lúc sau. Cũng có thể tìm kiếm qua tập tin
typescript để xem lại thông tin đã cuộn qua trên màn
hình trong khi nâng cấp.
Phần này giải thích cách nâng cấp hạt nhân, và diễn tả một số vấn đề liên
quan đến quá trình nâng cấp này. Quản trị có dịp cài đặt một của những gói
linux-image-*
[ được Debian cung cấp,
hoặc biên dịch một hạt nhân riêng từ mã nguồn.
]
Ghi chú rằng rất nhiều thông tin trong phần này dựa vào giả sử rằng quản trị
sẽ sử dụng một của những hạt nhân Debian kiểu mô-đun, cùng với
initramfs-tools
[ và ]
udev
[. Nếu quản trị chọn sử dụng một hạt nhân
riêng mà không cần thiết một initrd, hoặc sử dụng một bộ tạo ra initrd khác,
một số thông tin ở đây có thể không còn thích hợp lại.
]
Khi chạy quá trình nâng cấp bản phát hành (
dist-upgrade)
từ etch lên lenny, rất khuyên quản trị cài đặt một siêu
gói (metapackage)
linux-image-2.6-*
[
mới. Gói này cũng có thể được tự động cài đặt bởi tiến trình
]
dist-upgrade. Quản trị có thể kiểm tra nó đã được cài đặt
bằng cách chạy câu lệnh:
# dpkg -l "linux-image*" | grep ^ii
Không có kết xuất gì thì quản trị cần phải tự cài đặt một gói
linux-image-2.6-*
[. Để thấy danh sách các gói
]
linux-image-2.6-*
[ sẵn sàng, chạy câu
lệnh:
]
# apt-cache search linux-image-2.6- | grep -v transition
Chưa chắc về gói nào nên chọn thì chạy câu lệnh
uname -r
và tìm một gói có tên tương tự. Ví dụ, nếu thấy chuỗi «
2.6.18-6-686 », khuyên quản trị cài đặt gói
linux-image-2.6-686
[. (Ghi chú rằng mùi vị
]
k7 không còn tồn tại lại: quản trị hiện thời sử dụng mùi
vị hạt nhân 386 thì nên dùng mùi vị
686 để thay thế.)
Cũng có thể sử dụng công cụ
**apt-cache** để hiển thị một mô
tả chi tiết về mỗi gói, để giúp chọn gói thích hợp nhất. Ví dụ :
# apt-cache show linux-image-2.6-686
Sau đó thì có nên sử dụng câu lệnh cài đặt
aptitude
install để cài đặt nó. Một khi cài đặt hạt nhân mới, quản trị nên
khởi động lại càng sớm càng có thể, để lợi dụng phiên bản hạt nhân mới.
Cho quản trị liều lĩnh hơn, có một phương pháp dễ để biên dịch hạt nhân
riêng trên Debian GNU/Linux. Hãy cài đặt công cụ
kernel-package
[ và đọc các tài liệu hướng dẫn
trong thư mục ]
/usr/share/doc/kernel-package.
Nếu có thể, tốt hơn khi nâng cấp gói hạt nhân một cách riêng với quá trình
dist-upgrade chính, để tránh bị đứng với một hệ thống tạm
thời không khởi động được. Ghi chú rằng thao tác này chỉ nên được làm đằng
sau quá trình nâng cấp tối thiểu diễn tả trong
[Phần 4.5.6, “Nâng cấp hệ thống tối thiểu”](ch-upgrading.vi.html#minimal-upgrade).
lenny cung cấp một cơ chế phát hiện phần cứng mà mạnh mẽ hơn các bản
phát hành trước. Tuy nhiên, cơ chế này có thể sửa đổi thứ tự phát hiện thiết
bị trên hệ thống, mà ảnh hưởng đến thứ tự gán tên thiết bị. Ví dụ, nếu có
hai bộ tiếp hợp liên quan đến hai trình điều khiển khác nhau, thì hai chuỗi
eth0 và
eth1 có thể tham chiếu đến hai
thiết bị bị trao đổi, so với bản phát hành trước. Ghi chú rằng dùng cơ chế
mới (v.d.) việc chuyển đổi bộ tiếp hợp
Ethernet trong một
hệ thống lenny đang chạy có kết quả là bộ tiếp hợp mới sẽ cũng nhận
một tên giao diện mới.
Đối với thiết bị mạng, quản trị có thể tránh trường hợp này bằng cách sử
dụng các quy tắc của
udev
[, chính xác
hơn thông qua những lời xác định ở
]
/etc/udev/rules.d/70-persistent-net.rules
[ 4]. Hoặc quản trị có thể sử dụng tiện ích
udev
Đối với thiết bị lưu trữ, quản trị có thể tránh trường hợp thay đổi thứ tự
này bằng cách sử dụng gói công cụ
initramfs-tools
[ và cấu hình nó để nạp các mô-đun
trình điều khiển thiết bị lưu trữ theo thứ tự được nạp hiện thời. Để làm như
thế, hãy tìm thứ tự theo đó các thiết bị lưu trữ được nạp vào hệ thống bằng
cách xem lại kết xuất của ] **lsmod**. Công cụ
**lsmod** liệt kê các mô-đun theo thứ tự nạp đảo ngược, tức
là mô-đun thứ nhất trong danh sách là mô-đun được nạp cuối cùng. Ghi chú
rằng phương pháp này chỉ có tác động với thiết bị mà hạt nhân đến theo một
thứ tự ổn định (v.d. thiết bị PCI).
Tuy nhiên, việc gỡ bỏ và nạp lại mô-đun sau khi khởi động đầu tiên sẽ ảnh
hưởng đến thứ tự này. Hơn nữa, hạt nhân trên máy có thể liên kết tĩnh một số
trình điều khiển, và các tên này sẽ không xuất hiện trong kết xuất của
**lsmod**. Quản trị cũng có thể xem lại bản ghi
/var/log/kern.loghay kết xuất của
**dmesg** để thử phân biệt những tên trình điều khiển này và
thứ tự nạp.
Hãy thêm những tên mô-đun này vào
/etc/initramfs-tools/modules theo thứ tự nên nạp vào
lúc khởi động. Một số tên mô-đun có thể thay đổi giữa etch và
lenny. Ví dụ,
sym53c8xx_2 đã trở thành
sym53c8xx.
Sau đó thì quản trị cần phải tạo ra lại (các) ảnh
initramfs
[ bằng cách chạy câu lệnh
]
update-initramfs -u -k all.
Một khi chạy một hạt nhân lenny và
udev
[, quản trị cũng có thể cấu hình lại hệ thống
để truy cập đến đĩa theo một biệt hiệu không phụ thuộc vào thứ tự nạp trình
điều khiển. Các biệt hiệu này nằn trong cây thư mục
]
/dev/disk/.
Nếu khởi động hệ thống dùng một initrd được tạo dùng
initramfs-tools
[, trong một số trường hợp các tập
tin thiết bị được ]
udev
[ tạo quá trễ
để văn lệnh khởi động xử lý.
]
Trường hợp này thường ngụ ý khi không khởi động được vì không thể gắn kết hệ
thống tập tin gốc, và màn hình hiển thị một trình bao gỡ lỗi. Tuy nhiên, nếu
quản trị kiểm tra về sau, tất cả các thiết bị cần thiết có phải nằm trong
/dev. Trường hợp này đã xảy ra khi hệ thống tập tin gốc
nằm trên một đĩa USB hay một mảng
RAID, đặc biệt khi dùng
LILO
[.
]
Có thể chỉnh lại vấn đề này bằng cách sử dụng tham số khởi động
rootdelay= (khoảng đợi khởi
động: 9 giây). Điều chỉnh giá trị này để thích hợp với trường hợp riêng.
9
Khi câu lệnh
aptitude dist-upgrade đã chạy xong, hoàn tất
quá trình nâng cấp “hình thức”, nhưng vẫn có một số công việc
cần làm
*trước* khi khởi động lại.
Nếu hệ thống sử dụng
lilo
[ là công cụ
nạp khởi động (nó là bộ nạp khởi động cho một số bản cài đặt
etch) rất khuyên quản trị chạy ] **lilo** lần nữa
sau khi nâng cấp:
# /sbin/lilo
Ghi chú rằng cần phải chạy lại
**lilo** thậm chí nếu hạt nhân
chưa được nâng cấp, vì giai đoạn thứ hai của **lilo** sẽ thay
đổi so quá trình nâng cấp gói.
Hơn nữa, hãy xem lại nội dung của tập tin cấu hình
/etc/kernel-img.conf và kiểm tra nó chứa chuỗi
do_bootloader = Yes (làm bộ nạp khởi động = Có). Do đó,
bộ nạp khởi động lúc nào cũng chạy sau khi nâng cấp hạt nhân.
Gặp vấn đề nào khi chạy
**lilo** thì hãy so sánh các liên kết
tượng trưng trong cây thư mục
/ mà chỉ tới
vmlinuz và
initrd với nội dung của
tập tin cấu hình
/etc/lilo.conf.
Nếu người dùng quên chạy lại
**lilo** trước khi khởi động
lại, hoặc hệ thống tình cờ được khởi động lại trước khi người dùng có thể tự
làm như thế, hệ thống có thể sẽ không khởi động được. Thay cho dấu nhắc
**lilo**, người dùng sẽ chỉ thấy
LI khi
khởi động hệ thống
[ 5]. Xem
Một số người dùng đã thông báo rằng quá trình nâng cấp có thể gây ra hạt nhân không tìm được phân vùng gốc của hệ thống sau khi khởi động lại hệ thống.
Trong trường hợp như vậy, tiến trình khởi động hệ thống sẽ treo ở thông điệp theo đây:
Đang đợi hệ thống tập tin gốc...
và sau vài giây nữa, một dấu nhắc hộp bận thô sẽ xuất hiện.
Vấn đề này có thể xảy ra khi quá trình nâng cấp hạt nhân giới thiệu sử dụng
trình điều khiển IDE của thế hệ kế tiếp. Quy ước đặt tên
đĩa IDE cho trình điều khiển cũ là
hda,
hdb,
hdc,
hdd. Trình điều khiển mới sẽ đặt tên cùng những đĩa đó
sda,
sdb,
sdc,
sdd. Vấn đề xuất hiện khi quá trình nâng cấp không tạo ra
một tập tin
/boot/grub/menu.lst mới để tùy theo quy ước
đặt tên mới. Trong khi khởi động,
Grub
[ sẽ gửi một phân vùng gốc hệ thống qua cho
hạt nhân mà hạt nhân vẫn còn không tìm được.
]
Người dùng đã gặp vấn đề này nên nhảy tới
[Phần 4.8.2, “Cách giải quyết vấn đề sau khi nâng cấp”](ch-upgrading.vi.html#how-to-recover). Để tránh vấn đề này trước khi nâng cấp, đọc nữa
nhé.
Vẫn có thể tránh vấn đề này một cách hoàn toàn bằng cách sử dụng một bộ nhận diện cho hệ thống tập tin gốc mà không biến đổi giữa hai việc khởi động. Có hai phương pháp có thể làm như thế: đặt nhãn hệ thống tập tin, hoặc sử dụng bộ nhận diện duy nhất toàn thể (UUID). Hai phương pháp này được hỗ trợ trong Debian kể từ 4.0.
Hai phương pháp này có lợi ích và bất lợi. Phương pháp đặt nhãn vẫn dễ đọc hơn, nhưng cũng có thể gặp vấn đề nếu một hệ thống tập tin khác cùng máy có nhãn đó. Phương pháp UUID ít đẹp hơn, nhưng rất ít có thể tạo hai UUID xung đột.
Trong các mẫu thí dụ dưới đây, giả sử hệ thống tập tin gốc nằm trên
/dev/hda6. Cũng giả sử hệ thống có bản cài đặt
udev
[ và hệ thống tập tin kiểu
]
ext2 hay
ext3.
Để thực hiện phương pháp đặt nhãn:
Đặt nhãn hệ thống tập tin (tên có số tối đa 15 ký tự) bằng cách chạy câu
lệnh:
**e2label /dev/hda6 rootfilesys**
Chỉnh sửa tập tin
/boot/grub/menu.lst và sửa đổi dòng:
# kopt=root=/dev/hda6 ro
thành
# kopt=root=LABEL=rootfilesys ro
![]()
|Ghi chú|
Không nên gỡ bỏ dấu
Cập nhật những dòng hạt nhân (
kernel) trong tập tin lines
in
menu.lst bằng cách chạy câu lệnh
**update-grub**.
Chỉnh sửa tập tin
/etc/fstab và sửa đổi dòng mà gắn kết
phân vùng
/, v.d.
/dev/hda6 / ext3 defaults,errors=remount-ro 0 1
thành
LABEL=rootfilesys / ext3 defaults,errors=remount-ro 0 1
Thay đổi đáng kể là cột bên trái: không nên sửa đổi cột khác nào trên dòng này.
Để thực hiện phương pháp UUID:
Find out the universally unique identifier of your filesystem by issuing:
**ls -l /dev/disk/by-uuid | grep hda6**. You can also use
**vol_id --uuid /dev/hda6** (in etch) or
**blkid /dev/hda6** (if already upgraded to lenny).
Kết quả nên một dòng tương tự với:
lrwxrwxrwx 1 root root 24 2008-09-25 08:16 d0dfcc8a-417a-41e3-ad2e-9736317f2d8a -> ../../hda6
UUID là tên của liên kết tượng trưng chỉ tới
/dev/hda6, tức là:
d0dfcc8a-417a-41e3-ad2e-9736317f2d8a.
![]()
|Ghi chú|
UUID của mỗi hệ thống tập tin là một chuỗi riêng biệt.
Chỉnh sửa tập tin
/boot/grub/menu.lst và sửa đổi dòng:
# kopt=root=/dev/hda6 ro
thành
# kopt=root=UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8 ro
![]()
|Ghi chú|
Không nên gỡ bỏ dấu
Cập nhật những dòng hạt nhân (
kernel) trong tập tin lines
in
menu.lst bằng cách chạy câu lệnh
**update-grub**.
Chỉnh sửa tập tin
/etc/fstab và sửa đổi dòng mà gắn kết
phân vùng
/, v.d.
/dev/hda6 / ext3 defaults,errors=remount-ro 0 1
thành
UUID=d0dfcc8a-417a-41e3-ad2e-9736317f2d8 / ext3 defaults,errors=remount-ro 0 1
Thay đổi đáng kể là cột bên trái: không nên sửa đổi cột khác nào trên dòng này.
Phương pháp này thích hợp khi
Grub
[
hiển thị giao diện trình đơn để chọn mục nhập từ đó người dùng muốn khởi
động. Không có trình đơn xuất hiện thì hãy thử bấm phím ] **Esc**
trước khi hạt nhân khởi động, để ép buộc trình đơn xuất hiện. Vẫn còn không
thành công thì thử [Phần 4.8.2.2, “Lời giải 2”](ch-upgrading.vi.html#solution2) hay [Phần 4.8.2.3, “Lời giải 3”](ch-upgrading.vi.html#solution3).
Trong trình đơn
Grub
[, hãy tô sáng
mục nhập từ đó cần khởi động. Bấm phím ] **e** để chỉnh sửa các
tùy chọn liên quan đến mục nhập này. Kết quả nên tương tự với:
root (hd0,0) kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro initrd /initrd.img-2.6.26-1-686
Tô sáng dòng
kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro
bấm phím
**e** và thay thế
hd bằng
X
sd (
X
X đại
diện chữ
a,
b,
c
hay
d phụ thuộc vào hệ thống. Trong mẫu thí dụ này, dòng
này trở thành:
kernel /vmlinuz-2.6.26-1-686 root=/dev/sda6 ro
Sau đó, bấm phím
**Enter** để lưu lại thay đổi. Nếu dòng khác
nào bao gồm
hd, cũng nên sửa
đổi nó. Không nên sửa đổi mục nhập tương tự với
X
root
(hd0,0). Một khi sửa đổi xong và lưu lại, bấm phím
**b**: hệ thống nên khởi động như bình thường.
Một khi khởi động được, người dùng cần phải sửa chữa bền bỉ vấn đề đó. Nhảy
tới
[Phần 4.8.1, “Cách tránh vấn đề này trong khi nâng cấp”](ch-upgrading.vi.html#avoid-problems-before-upgrading) và áp dụng một của hai
thủ tục đề xuất.
Khởi động từ vật chứa cài đặt Debian GNU/Linux (đĩa
CD/DVD) và khi được nhắc, chọn mục
rescue (cứu) để khởi chạy chế độ cứu. Chọn ngôn ngữ, địa
điểm và bố trí bàn phím, sau đó cho phép nó cấu hình mạng (bất chấp thành
không hay không). Sau một thời gian, nó nên nhắc người dùng chọn phân vùng
cần sử dụng làm hệ thống tập tin gốc. Các lựa chọn đề xuất sẽ hình như :
/dev/ide/host0/bus0/target0/lun0/part1 /dev/ide/host0/bus0/target0/lun0/part2 /dev/ide/host0/bus0/target0/lun0/part5 /dev/ide/host0/bus0/target0/lun0/part6
Nếu người dùng biết phân vùng nào là hệ thống tập tin gốc, chọn phân vùng thích hợp. Không thì chỉ thử phân vùng thứ nhất. Nếu phần mềm than phiền về một phân vùng hệ thống tập tin không hợp lệ, chỉ thử phân vùng kế tiếp, v.v. Thử lần lượt phân vùng nọ sau phân vùng kia không nên làm hại phân vùng, và nếu chỉ có một hệ điều hành được cài đặt trên đĩa thì dễ tìm phân vùng hệ thống tập tin đúng. Nếu có nhiều hệ điều hành được cài đặt vào đĩa, tốt hơn khi người dùng biết phân vùng nào là đúng.
Một khi chọn phân vùng, người dùng sẽ thấy một số tùy chọn khác nhau. Bật tùy chọn sẽ thực hiện một trình bao trong phân vùng đã chọn. Nếu phần mềm than phiền rằng nó không thể làm như thế, thử tùy chọn này trong một phiên bản khác.
Sau đó thì quản trị nên có quyền truy cập đến trình bao dưới người dùng
root (người chủ) trên hệ thống tập tin gốc được gắn kết
đến
/target. Quản trị cần quyền truy cập đến nội dung
của các thư mục
/boot,
/sbin và
/usr trên đĩa cứng, mà giờ nên sẵn sàng dưới
/target/boot,
/target/sbin và
/target/usr. Nếu thư mục như vậy cần được gắn kết từ
phiên bản khác, hãy làm như thế (xem
/etc/fstab để tìm
biết phân vùng nào nên gắn kết).
Nhảy tới
[Phần 4.8.1, “Cách tránh vấn đề này trong khi nâng cấp”](ch-upgrading.vi.html#avoid-problems-before-upgrading) và áp dụng một
của hai thủ tục đề xuất để sửa bền bỉ vấn đề này. Sau đó, gõ lệnh
exit để thoát khỏi trình bao cứu, và chọn mục
reboot để khởi động hệ thống như bình thường (đừng quên
gỡ bỏ vật chứa có khả năng khởi động).
Khởi động từ bản phát hành CD-Động (LiveCD), v.d. Debian Động, Knoppix hay Ubuntu Động.
Gắn kết phiên bản chứa thư mục
/boot. Không biết thư
mục nào thì sử dụng kết xuất của lệnh
**dmesg** để tìm biết
nếu đĩa được biết như là
hda,
hdb,
hdc,
hdd hay
sda,
sdb,
sdc,
sdd. Một
khi biết đĩa nào cần thao tác, v.d.
sdb, chạy câu lệnh
theo đây để thấy bảng phân vùng của đĩa và tìm phân vùng đúng:
**fdisk -l /dev/sdb**
Giả sử đã gắn kết phân vùng đúng dưới
/mnt, và phân
vùng này chứa thư mục
/boot và nội dung của nó, hãy
chỉnh sửa tập tin
/mnt/boot/grub/menu.lst.
Tìm phần tương tự với:
## ## End Default Options ## title Debian GNU/Linux, kernel 2.6.26-1-686 root (hd0,0) kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro initrd /initrd.img-2.6.26-1-686 title Debian GNU/Linux, kernel 2.6.26-1-686 (single-user mode) root (hd0,0) kernel /vmlinuz-2.6.26-1-686 root=/dev/hda6 ro single initrd /initrd.img-2.6.26-1-686 ### END DEBIAN AUTOMAGIC KERNELS LIST
và thay thế mỗi chuỗi
hda,
hdb,
hdc,
hdd bằng
sda,
sdb,
sdc,
sdd như
thích hợp. Không nên sửa đổi dòng tương tự với:
root (hd0,0)
Khởi động lại hệ thống, gỡ bỏ đĩa CD-Động, và hệ thống nên khởi động đúng.
Một khi khởi động được, áp dụng một của hai thủ tục đề xuất dưới
[Phần 4.8.1, “Cách tránh vấn đề này trong khi nâng cấp”](ch-upgrading.vi.html#avoid-problems-before-upgrading) để sửa chữa bền bỉ vấn đề này.
Sau khi nâng cấp, có vài việc có thể làm để chuẩn bị cho bản phát hành kế tiếp.
Nếu siêu gói ảnh hạt nhân mới đã được lấy do quan hệ phụ thuộc với gói cũ, nó sẽ được đánh dấu là « đã tự động cài đặt », mà nên được sửa chữa (chạy câu lệnh):
# aptitude unmarkauto $(dpkg-query -W 'linux-image-2.6-*' | cut -f1)
Gỡ bỏ các gói quá cũ và không dùng như diễn tả trong
[Phần 4.10, “Gói quá cũ”](ch-upgrading.vi.html#obsolete). Cũng nên xem lại những tập tin cấu hình được chúng
dùng và có dịp tẩy mỗi gói để cũng gỡ bỏ các tập tin cấu hình (và dữ liệu
liên quan khác).
Cũng như giới thiệu vài nghìn gói mới, lenny gỡ bỏ và bỏ sót hơn hai
nghìn gói cũ đã nằm trong etch. Nó không cung cấp đường dẫn nâng
cấp cho gói quá cũ. Dù không có gì ngăn cản người dùng tiếp tục sử dụng gói
quá cũ, Dự án Debian thường dừng cung cấp hỗ trợ bảo mật cho nó, một năm sau
khi phát hành lenny
[ 6], và không phải thông thường cung cấp hỗ trợ khác nào đã ra
đời. Khuyên quản trị thay thế mỗi gói như vậy bằng một gói xen kẽ sẵn sàng
(nếu có).
Có rất nhiều lý do gói bị gỡ bỏ khỏi bản phát hành: gói đó không còn được duy trì lại bởi dự án gốc; không còn có lại một Nhà phát triển Debian quan tâm đến duy trì gói đó; chức năng được gói đó cung cấp đã bị thay thế bằng một gói phần mềm/phiên bản mới; hoặc gói đó không còn thích hợp lại với lenny do lỗi nội bộ. Trong trường hợp cuối cùng, gói đó có thể vẫn còn nằm trong bản phân phối “bất định” (unstable).
Dễ phát hiện những gói nào “quá cũ” trong một hệ thống đã cập
nhật, vì giao diện quản lý gói sẽ đánh dấu chúng một cách tương ứng. Trong
**aptitude**, danh sách các gói như vậy được hiển thị dưới
tiêu đề “Gói cũ và tạo cục bộ”. **dselect** cung
cấp một danh sách tương tự mà có thể chứa nội dung khác.
Hơn nữa, nếu người dùng đã sử dụng
**aptitude** để tự cài đặt
gói trong etch, nó đã theo dõi những gói đã cài đặt bằng tay và
có khả năng đánh dấu « quá cũ » những gói được lấy chỉ do quan hệ phụ thuộc
mà không còn cần thiết lại nếu một gói nào đó bị gỡ bỏ. Cũng như vậy,
**aptitude**, khác với **deborphan**, sẽ không
đánh dấu gói « quá cũ » mà được người dùng tự động cài đặt, như trái ngược
với gói được tự động cài đặt do quan hệ phụ thuộc.
Cũng có công cụ bổ sung để tìm các gói quá cũ,
v.d.
**deborphan**, **debfoster** hay
**cruft**. **deborphan** rất khuyến khích, dù
trong chế độ mặc định nó chỉ thông báo các thư viện quá cũ : những gói trong
phần thư viện “
libs” hay phần thư viện cũ
“
oldlibs” mà không dùng bởi gói khác
nhau. Không nên mù quáng gỡ bỏ những gói được tìm bởi công cụ như vậy, đặc
biệt nếu phần mềm sử dụng tùy chọn khác mặc định cũng năng nổ mà có khuynh
hướng xuất kết quả dương giả. Rất khuyên người dùng tự xem lại những gói đề
xuất gỡ bỏ (tức là nội dung, kích cỡ và mô tả về mỗi gói) trước khi thật sự
gỡ bỏ chúng.
[Hệ thống Theo dõi Lỗi Debian](http://bugs.debian.org/) thường cung cấp
thông tin bổ sung về lý do gỡ bỏ một gói nào đó. Khuyên người dùng xem lại
cả hai những báo cáo lỗi được lưu trữ về gói chính nó, và những báo cáo lỗi
được lưu trữ về [gói-giả
ftp.debian.org](http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=ftp.debian.org&archive=yes).
The list of obsolete packages includes:
Một số gọi nào đó từ etch đã bị chia ra vài gọi khác nhau trong lenny, thường để cải tiến khả năng bảo tồn hệ thống. Để làm dễ dàng đường dẫn nâng cấp trong các trường hợp như vậy, lenny thường cung cấp các gói “giả”: gói trống cùng tên với gói cũ trong etch với quan hệ phụ thuộc mà gây ra cài đặt gói mới. Sau khi nâng cấp, các gói “giả” được thấy là quá cũ thì có thể được gỡ bỏ an toàn.
Hậu hết (nhưng không phải tất cả các) mô tả về gói giả cũng ngụ ý mục đích
của nó. Tuy nhiên, các mô tả gói về gói giả không phải thống nhất, do đó
cũng có ích để sử dụng
**deborphan** với tùy chọn
--guess (đoán) để phát hiện gói giả trong hệ thống. Ghi
chú rằng một số gói giả nào đó không dự định được gỡ bỏ sau khi nâng cấp, vì
chúng được dùng để theo dõi phiên bản sẵn sàng hiện thời của một chương
trình nào đó trong thời gian.
[ 2] Cũng có thể tắt tính năng này bằng cách thêm tham số
panic=0vào các tham số khởi động.
[ 3] Hệ thống quản lý gói Debian bình thường không cho phép Gói 1 gỡ bỏ hoặc thay
thế một tập tin thuộc về Gói 2, nếu nó chưa xác định để thay thế Gói 2. [ 4]
Những quy tắc ở đó được tự động tạo ra bởi văn lệnh
/etc/udev/rules.d/75-persistent-net-generator.rulesđể có tên bền bỉ cho mỗi giao diện mạng. Hãy xoá liên kết tượng trưng này để tắt chức năng đặt tên thiết bị bền bỉ cho NIC bởi
udev
[ 5] Để tìm thêm thông tin về các mã lỗi của [ 6] Hoặc miễn là không có bản phát hành nữa trong khoảng thời gian đó. Bình
thường chỉ hai bản phát hành ổn định được hỗ trợ nhau vào một lúc nào đó.

Content-Language: vi

Server: Apache

X-Clacks-Overhead: GNU Terry Pratchett

Accept-Ranges: bytes


text:
Trang này không có hoặc đã bị xóa
Trang không tồn tại
In ấn chuyên nghiệp
Thiết kế sáng tạo
Dịch vụ thiết kế sáng tạo và in ấn chuyên nghiệp của chúng tôi góp phần nâng cao giá trị Thương hiệu và sản phẩm của bạn
THIẾT KẾ PRO
THEO YÊU CẦU
IN ẤN CHẤT LƯỢNG
GIÁ RẺ HÀNG ĐẦU
GIAO HÀNG TẬN NƠI
TOÀN QUỐC
KHUYẾN MẠI
HẤP DẪN LIÊN TỤC
Trang này không có hoặc đã bị xóa

markdown:
Trang này không có hoặc đã bị xóa
# Trang không tồn tại
In ấn chuyên nghiệp
Thiết kế sáng tạo
Dịch vụ thiết kế sáng tạo và in ấn chuyên nghiệp của chúng tôi góp phần nâng cao giá trị Thương hiệu và sản phẩm của bạn
**THIẾT KẾ PRO**
THEO YÊU CẦU
**IN ẤN CHẤT LƯỢNG**
GIÁ RẺ HÀNG ĐẦU
**GIAO HÀNG TẬN NƠI**
TOÀN QUỐC
**KHUYẾN MẠI**
HẤP DẪN LIÊN TỤC
Trang này không có hoặc đã bị xóa

WARC-Type: response

Content-Type: application/http; msgtype=response

WARC-Truncated: length

Pragma: public

Cache-Control: max-age=36000, public

Set-Cookie: nguyennam_session=1f2e14eaf66453bffebe6279b99ce563757add73; expires=Thu, 26-May-2016 12:40:45 GMT; path=/; HttpOnly

Connection: close

Content-Type: text/html; charset=UTF-8


text:
Xem Online phim Asia Giọng Ca Vàng 2011
download phim Asia Giọng Ca Vàng 2011 DVD/DVDRIP
Song List:
1. Chỉ Một Lần Thôi – Nguyên Huy
2. Cò Úa – Vương Phùng Sơn
3.Lạc Mãi Bến Bờ – Lindsey Đỗ Tiên Dung
4.Đêm Buồn Tỉnh Lẽ – Huỳnh Phi Tiễn
5.Vùng Biển Vắng – Lưu Đức Long
6.Anh Còn Nợ Em – Lý Thương Linh
7.Bài Không Tên Số 2 – Võ Đăng Vinh
8.Đã Qua Thời Mong Chờ – Hồng Diễm
9.Vẫn Yêu Mình Em – Lâm Nhật Linh
10.Trăng Tàn Trên Hè Phố – Tuyết Lê
11.Gỏ Cữa – Nhật Lâm
12.Anh Không Chết Đâu Anh – Hoàng Anh Thư
13.Thiên Thần Trong Bóng Tối – Lê Quốc Tuấn
14.Kỳ Diệu – Phạm Tuấn Ngọc
15.Mộng Dưới Hoa – Mai Văn Tiến
« Thuý Nga Films : Tiếng Tơ Đồng PhimVN 2012 | Phiên Chợ Số Phim Việt Nam »

markdown:
[Xem Online phim Asia Giọng Ca Vàng 2011](http://www.kenh88.com/xem-phim-5211/asia-giong-ca-vang-2011.html) [download phim Asia Giọng Ca Vàng 2011 DVD/DVDRIP ](http://www.phim88.com/forum/threads/16714-Asia-Gi%E1%BB%8Dng-Ca-V%C3%A0ng-2011-DVD9-DVD5-DVDRIP)
Song List:
1. Chỉ Một Lần Thôi – Nguyên Huy
2. Cò Úa – Vương Phùng Sơn
3.Lạc Mãi Bến Bờ – Lindsey Đỗ Tiên Dung
4.Đêm Buồn Tỉnh Lẽ – Huỳnh Phi Tiễn
5.Vùng Biển Vắng – Lưu Đức Long
6.Anh Còn Nợ Em – Lý Thương Linh
7.Bài Không Tên Số 2 – Võ Đăng Vinh
8.Đã Qua Thời Mong Chờ – Hồng Diễm
9.Vẫn Yêu Mình Em – Lâm Nhật Linh
10.Trăng Tàn Trên Hè Phố – Tuyết Lê
11.Gỏ Cữa – Nhật Lâm
12.Anh Không Chết Đâu Anh – Hoàng Anh Thư
13.Thiên Thần Trong Bóng Tối – Lê Quốc Tuấn
14.Kỳ Diệu – Phạm Tuấn Ngọc
15.Mộng Dưới Hoa – Mai Văn Tiến
[Asia Giọng Ca Vàng 2011](http://www.phim88.com/phim-online/tag/asia-giong-ca-vang-2011)
«
[Thuý Nga Films : Tiếng Tơ Đồng PhimVN 2012](http://www.phim88.com/phim-online/thuy-nga-films-tieng-to-dong-phimvn-2012-3652.html) | [Phiên Chợ Số Phim Việt Nam](http://www.phim88.com/phim-online/phien-cho-so-phim-viet-nam-3659.html) »

Server: cloudflare-nginx

Vary: Accept-Encoding


text:
Thương hiệu: Wheelmate
Xuất xứ: Đài Loan
Dùng cho loại xe: Bánh sau Dream
Căm wheelmate được làm bằng thép carbon nhập khẩu từ Nhật, chất lượng cao.
Thương hiệu: Wheelmate
Xuất xứ: Đài Loan
Dùng cho loại xe: Bánh sau Dream
Căm wheelmate được làm bằng thép carbon nhập khẩu từ Nhật, chất lượng cao.

Set-Cookie: ja_sanidineii_light_tpl=ja_sanidineii_light; expires=Tue, 16-May-2017 10:11:03 GMT; Max-Age=30672000; path=/

Server: nginx

Pragma: no-cache

Cache-Control: post-check=0, pre-check=0

Vary: Accept-Encoding,User-Agent

P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"

Content-Type: text/html; charset=utf-8


text:
CÔNG TY CỔ PHẦN DƯỢC PHẨM PHONG PHÚ (PP.PHARCO)
Nhóm sản phẩm
Thuocbietduoc.com.vn
Sản phẩm
Giới thiệu
Liên hệ
N02
Giảm đau, hạ sốt, chống viêm
12
N03
Thuốc chống dị ứng...
7
N04
Thuốc cấp cứu & giải độc
4
N05
Hướng tâm thần
1
N06
Chống nhiễm khuẩn, KS trùng
1
N13
Thuốc tim mạch
3
N18
Thuốc đường tiêu hóa
14
N21
Giãn cơ và tăng trương lực cơ
1
N25
Thuốc TD trên đường hô hấp
7
N26
DD điều chỉnh nước điện giải...
1
N27
Khoáng chất và Vitamin
17
N28
Thuốc khác
11
N29
Thuốc có nguồn gốc Thảo dược...
36
Quay lại
Calcium D
Số Đăng ký:
VNB-0056-02
Dạng bào chế:
viên nén
Quy cách đóng gói:
Hộp 10 vỉ x 10 viên nén bao phim
Giá kê khai:
- Bán buôn:
chờ cập nhật
- Bán lẻ:
chờ cập nhật
Mua bán thuốc>
Nhóm Dược lý:
Khoáng chất và Vitamin
THÀNH PHẦN:
Calcium carbonate, Cholecalciferol
Chỉ định:
Bổ sung Calcium cho cơ thể ở người lớn tuổi, phụ nữ sau mãn kinh (phòng & điều trị loãng xương, giảm đau nhức), phụ nữ có thai & cho con bú, trẻ đang lớn (tăng chiều cao, trị còi xương, suy dinh dưỡng), bệnh nhân gãy xương (giúp mau lành xương).
Chống chỉ định:
Quá mẫn với thành phần thuốc. Tăng Ca máu. Sỏi thận, suy thận nặng. Trẻ < 12 tháng.
Tương tác thuốc:
Aldosterone, triamterene, tetracycline, các thuốc có P, Ca khác. Tanin (có trong trà): tránh dùng chung.
Tác dụng phụ:
Nôn, buồn nôn, tăng Na huyết, phù, suy tim khi dùng quá liều. Lâu dài: tăng Ca huyết, sỏi thận.
Chú ý đề phòng:
Bệnh nhân suy thận, suy tim mạch, giảm protein máu, đang dùng glycoside trợ tim. Có thai & cho con bú.
Liều lượng:
Uống 2 viên x 1 hoặc 2 lần mỗi ngày.
Quay lại
Thông tin chỉ mang tính tra cứu tham khảo - không phải là gian hàng TMĐT!
Copyright ©
2016
Thuocbietduoc.com.vn

Cache-Control: private