Disclaimer :
This document is not valid and is not maintained anymore.
|
[ << ]
[ < ]
[ Về đầu ]
[ > ]
[ >> ]
3. Các tính năng của Portage
Nội dung:
3.a. Các tính năng của Portage
Portage có một số tính năng bổ sung giúp bạn sử dụng Gentoo tốt hơn.
Nhiều tính năng dựa trên một số công cụ để cải thiện hiệu năng, tính
ổn định, bảo mật ...
Để bật hoặc tắt một số tính năng nhất định của Portage, bạn cần hiệu
chỉnh biến FEATURES trong /etc/make.conf, chứa các
từ khóa tính năng khác nhau, cách nhau bằng khoảng trắng. Trong
vài trường hợp, bạn còn cần cài đặt công cụ bổ sung mà những tính năng
này cần.
Chú ý rằng không phải tất cả các tính năng của Portage được liệt kê ở
đây. Để có cái nhìn toàn diện, hãy tham khảo man page của
make.conf:
Mã 1.1: Xem man page của make.conf |
$ man make.conf
|
Để biết những tính năng nào được kích hoạt, hãy chạy emerge
--info và tìm biến FEATURES hoặc grep nó:
Mã 1.2: Tìm xem biến FEATURES đã được lập chưa |
$ emerge --info | grep FEATURES
|
3.b. Biên dịch phân tán
Dùng distcc
distcc là chương trình để phân tán quá trình biên dịch trên
nhiều máy, không nhất thiết đồng nhất, trên mạng. Client distcc
gửi mọi thông tin cần thiết về các distcc server hiện có (chạy
distccd) để chúng có thể biên dịch từng phần mã nguồn cho
client. Kết quả có được là quá trình biên dịch được rút ngắn.
Bạn có thể tìm thông tin chi tiết về distcc (và cách làm nó
hoạt động trong Gentoo) trong tài liệu Gentoo Distcc Documentation của chúng
tôi.
Cài đặt distcc
Distcc đi kèm với một bộ theo dõi đồ họa để theo dõi các công việc mà
máy tính bạn gửi đi để biên dịch. Nếu bạn dùng Gnome, hãy đặt 'gnome'
vào biến USE. Tuy nhiên, nếu bạn không dùng Gnome và vẫn muốn có bộ
theo dõi, bạn nên đặt 'gtk' vào biến USE.
Mã 2.1: Cài đặt distcc |
# emerge distcc
|
Kích hoạt hỗ trợ Portage
Hãy thêm distcc vào biến FEATURES bên trong /etc/make.conf.
Kế tiếp hãy hiệu chỉnh biến MAKEOPTS theo ý thích của bạn. Một chỉ dẫn
đáng tin cập là dùng "-jX" với X là số CPU bạn dùng để chạy
distccd (bao gồm máy hiện thời) cộng một. Tuy nhiên bạn cũng có
thể đạt kết quả tốt với một con số khác.
Giờ hãy chạy distcc-config và nhập vào danh sách distcc server
hiện có. Trong ví dụ sau, chúng tôi giả định rằng distcc server là 192.168.1.102
(máy hiện thời), 192.168.1.103 và 192.168.1.104 (hai máy hỗ trợ):
Mã 2.2: Cấu hình distcc với ba distcc server |
# distcc-config --set-hosts "192.168.1.102 192.168.1.103 192.168.1.104"
|
Đừng quên chạy distccd daemon:
Mã 2.3: Khởi động distccd daemon |
# rc-update add distccd default
# /etc/init.d/distccd start
|
3.c. Caching Compilation
Giới thiệu ccache
ccache là cache cho trình biên dịch. Khi bạn biên dịch chương
trình, nó sẽ lưu lại kết quả trung gian, để bất cứ khi nào bạn biên
dịch cùng một chương trình đó, thời gian biên dịch sẽ giảm đáng kể.
Đối với thao tác biên dịch thông thường, điều này có thể tăng tốc từ 5
đến 10 lần thời gian biên dịch.
Nếu bạn quan tâm đến ccache, vui lòng xem
trang chủ của ccache.
Cài đặt ccache
Để cài đặt ccache, hãy chạy emerge ccache:
Mã 3.1: Cài đặt ccache |
# emerge ccache
|
Kích hoạt hỗ trợ Portage
Hãy mở /etc/make.conf và thêm ccache vào biến
FEATURES. Sau đó thêm biến mới tên là CCACHE_SIZE và đặt nó là "2G":
Mã 3.2: Đặt biến CCACHE_SIZE trong /etc/make.conf |
CCACHE_SIZE="2G"
|
Để kiểm tra tính năng ccache, hãy yêu cầu ccache cung cấp thông tin
thống kê của nó. Vì Portage dùng thư mục home ccache khác, bạn cần đặt
biến CCACHE_DIR luôn:
Mã 3.3: Xem thống kê ccache |
# CCACHE_DIR="/var/tmp/ccache" ccache -s
|
Vị trí /var/tmp/ccache là vị trí thư mục home ccache mặc
định của Portage. Nếu bạn muốn thay đổi, hãy điều chỉnh
CCACHE_DIR trong /etc/make.conf.
Tuy nhiên nếu bạn chạy ccache, nó sẽ dùng thư mục mặc định
${HOME}/.ccache. Đó là lý do tại sao phải đặt biến
CCACHE_DIR khi tính thống kê ccache cho Portage.
Dùng ccache khi biên dịch không dùng Portage
Nếu bạn muốn dùng ccache khi biên dịch không dùng Portage, hãy thêm
/usr/lib/ccache/bin vào đầu biến PATH (trước
/usr/bin). Điều đó có thể được thực hiện bằng cách hiệu
chỉnh /etc/env.d/00basic, cũng là tập tin môi trường đầu
tiên định nghĩa biến PATH:
Mã 3.4: Hiệu chỉnh /etc/env.d/00basic |
PATH="/usr/lib/ccache/bin:/opt/bin"
|
3.d. Hỗ trợ gói tạo sẵn
Tạo sẵn gói
Portage hỗ trợ cài đặt các gói dựng sẵn. Ngay cả khi Gentoo không tự
cung cấp các gói dựng sẵn (trừ các phiên bản GRP), Portage vẫn có thể
hỗ trợ các gói dựng sẵn.
Để tạo các gói dựng sẵn, bạn có thể dùng quickpkg nếu gói đó đã
cài đặt vào hệ thống, hoặc emerge với tham số --buildpkg
hoặc --buildpkgonly.
Nếu bạn muốn Portage tạo các gói dựng sẵn của từng gói bạn cài đặt,
hãy thêm buildpkg vào biến FEATURES.
Hỗ trợ mở rộng hơn cho việc tạo gói dựng sẵn là sử dụng chương trình
catalyst. Vui lòng đọc Catalyst Reference Manual
và Catalyst
Howto để có thông tin chi tiết về Catalyst.
Cài đặt gói tạo sẵn
Mặc dù Gentoo không cung cấp các gói dựng sẵn, bạn có thể tạo một kho
lưu trữ tập trung, nơi bạn chứa các gói dựng sẵn của bạn. Nếu bạn muốn
dùng kho này, bạn cần thông báo cho Portage biết sự hiện diện của nó
bằng cách đặt PORTAGE_BINHOST trỏ đến nó. Ví dụ, nếu các gọi dựng sẵn
của bạn nằm ở ftp://buildhost/gentoo:
Mã 4.1: Đặt PORTAGE_BINHOST trong /etc/make.conf |
PORTAGE_BINHOST="ftp://buildhost/gentoo"
|
Khi bạn muốn cài đặt một gói dựng sẵn, hãy thêm tùy chọn
--getbinpkg vào lệnh emerge bên cạnh tùy chọn --usepkg.
Tùy chọn đầu cho emerge biết cần tải về các gói dựng sẵn từ server
được định nghĩa bên trên còn tùy chọn sau yêu cầu emerge cài đặt các
gói dựng sẵn trước khi thử lấy mã nguồn về và biên dịch.
Ví dụ, để cài gnumeric với gói dựng sẵn:
Mã 4.2: Cài đặt gói dựng sẵn gnumeric |
# emerge --usepkg --getbinpkg gnumeric
|
Thông tin chi tiết hơn về những tuỳ chọn của emerge dành cho các gói
dựng sẵn nằm trong man page của emerge:
Mã 4.3: Đọc man page của emerge |
$ man emerge
|
[ << ]
[ < ]
[ Về đầu ]
[ > ]
[ >> ]
Tài liệu này sử dụng giấy phép Creative Commons -
Attribution / Share Alike.
|