(91) 350-9520 support@omarine.org M-F: 7 AM - 7 PM; Weekends: 9 AM - 5 PM

Thực hành sử dụng gbuild-1.0.2 để xây dựng nhiều gói phần mềm tự động

Có một gói phần mềm ở dạng gộp bởi nhiều gói con, đó là gói alsa-tools-1.0.28- một bộ các gói công cụ âm thanh ALSA(Advanced Linux Sound Architecture). Việc chuyển đến thư mục của từng gói con để xây dựng lần lượt chúng một cách thủ công sẽ tốn rất nhiều thời gian. Xây dựng toàn bộ các gói như vậy có thể thực hiện tự động với gbuild-1.0.2 theo các bước dưới đây. Tôi trình bày chi tiết để những bạn mới làm quen với hệ thống Unix/Linux một vài ngày cũng có thể thực hành được.

1) Mở một cửa sổ lệnh hoặc vào một cửa sổ lệnh đã mở(Trên hệ thống Omarine hay trên nền KDE nói chung, bạn có thể mở một cửa sổ lệnh bằng cách nhấn chuột vào một khoảng trống trên màn hình Desktop rồi gõ vào Konsole, ấn Enter. Các bước tiếp theo sẽ dùng hệ thống Omarine để minh họa).

2) Đảm bảo bạn đang ở thư mục nhà($HOME hoặc ~), gõ lệnh


cd

3) Tạo thư mục alsa-tools-1.0.28 trong thư mục tool


mkdir -p tool/alsa-tools-1.0.28/

4) Tải về tar ball alsa-tools-1.0.28.tar.bz2 tại http://alsa.cybermirror.org/tools/alsa-tools-1.0.28.tar.bz2 , chuyển nó vào thư mục tool(tập trung các tệp nguồn gói phần mềm loại công cụ vào đây). Bạn chuyển tệp bằng chuột, hoặc sử dụng dòng lệnh bên dưới nếu theo thông thường tệp alsa-tools-1.0.28.tar.bz2 tải về sẽ nằm ở thư mục nhà hoặc thư mục Downloads:

if [ -f alsa-tools-1.0.28.tar.bz2 ]; then \

mv alsa-tools-1.0.28.tar.bz2 tool/; \ 

elif [ -f Downloads/alsa-tools-1.0.28.tar.bz2 ]; then \

mv Downloads/alsa-tools-1.0.28.tar.bz2 tool/; \ 

else echo "Notfound! please use the mouse."; \ 

fi

Hoặc dùng dòng lệnh sau đây để chuyển tệp thì hoàn toàn không phải dùng chuột:


mv $(find . -name alsa-tools-1.0.28.tar.bz2 2>/dev/null | \

grep alsa-tools-1.0.28.tar.bz2 | tail -n1) tool/

Tất cả các quá trình dài dòng bên trên trong bước này bao gồm cả download và chuyển tệp có thể được thay thế bằng một lệnh duy nhất, sử dụng wget:

wget http://alsa.cybermirror.org/tools/alsa-tools-1.0.28.tar.bz2 -P tool/

5) Giải nén tệp alsa-tools-1.0.28.tar.bz2 vào thư mục tool/alsa-tools-1.0.28/


tar xf tool/alsa-tools-1.0.28.tar.bz2 -C tool/

Bạn dùng chuột mở thư mục tool/alsa-tools-1.0.28/, nội dung thư mục sẽ hiển thị như hình này

alsa-tools

6) Nếu bạn chưa có gbuild-1.0.2: tải về tar ball gbuild-1.0.2.tar.gz qua tab “Phần mềm” của trang này.

7) Nếu kịch bản gbuild.sh chưa tồn tại ở thư mục nhà thì giải nén gbuild-1.0.2.tar.gz và chép gbuild.sh vào thư mục nhà


if [ ! -x gbuild.sh ]; then tar vxf $(find . -name gbuild-1.0.2.tar.gz \

2>/dev/null | grep gbuild-1.0.2.tar.gz | tail -n1) && \

cp -v gbuild-1.0.2/gbuild.sh .; fi

8) Bây giờ chúng ta tạo danh sách các modules


for tooldir in tool/alsa-tools-1.0.28/*; do \

if [ -d $tooldir ]; then \

case $tooldir in \

tool/alsa-tools-1.0.28/seq) \

tooldir=$tooldir/sbiload; \

;; \

esac; \

line="INIT: $tooldir"; \

length=0; \

while [ $length -le 50 ]; do \

line="$line "; length=$(expr length "$line"); \

done; \

line="${line}$(expr $tooldir : ".*/\([^/]*\)")"; \

echo "$line" >>tool/alsa-tools-1.0.28/alsa-tools-list; \

fi; \

done

Chúng ta được tệp danh sách alsa-tools-list trong thư mục tool/alsa-tools-1.0.28/, dùng chuột mở nó ra bạn sẽ thấy hình như dưới đây

alsa-tools-list
Trong trường hợp này các modules không cần có lựa chọn cấu hình nào thêm. Sẽ không ảnh hưởng gì nếu bạn soạn thảo tệp danh sách, thêm lựa chọn cấu hình --sysconfdir=/etc vào mỗi mục danh sách để sắp đặt các tệp cấu hình của module vào thư mục cấu hình hệ thống. Bạn cũng có thể thêm lựa chọn --libdir=/usr/lib64 để cấu hình các tệp thư viện sẽ được cài đặt ở /usr/lib64 thay vì /usr/lib theo mặc định. Lúc này tệp danh sách trông sẽ như hình này

alsa-tools-list2

9) Xây dựng gói đã sẵn sàng, chúng ta sử dụng gbuild.sh để xây dựng toàn bộ các modules trong danh sách bằng một dòng lệnh duy nhất


./gbuild.sh --installroot=build/tool/alsa-tools-1.0.28 --prefix=/usr \
 --modfile tool/alsa-tools-1.0.28/alsa-tools-list -n -s sudo

*Giải thích các tham số lựa chọn:

--installroot=build/tool/alsa-tools-1.0.28

Cài đặt các nhị phân kết quả vào gốc cài đặt là thư mục build/tool/alsa-tools-1.0.28/, điều này có tác dụng là xuất nhị phân ra một nơi riêng biệt để sau này đóng gói rồi cài vào hệ thống sau, hoặc cài vào máy khác. Nếu bạn muốn cài đặt trực tiếp phần mềm vào hệ thống thì bỏ đi lựa chọn này.

--prefix=/usr

Tiền tố cài đặt là /usr, theo đó các tệp chương trình được cấu hình tại /usr/bin, các tệp dữ liệu được cấu hình nằm trong /usr/share…(các tệp cấu hình và thư viện thì đã theo lựa chọn cấu hình trong tệp danh sách).

--modfile tool/alsa-tools-1.0.28/alsa-tools-list

Sử dụng tệp danh sách module riêng là tool/alsa-tools-1.0.28/alsa-tools-list, chứ không sử dụng tệp danh sách mặc định là prelist ở thư mục nhà.

-n

Không thoát chương trình khi một gói xây dựng gặp thất bại, tiếp tục xây dựng các gói tiếp theo trong danh sách

-s sudo

Sử dụng Sudo để cài đặt, là điều cần thiết khi bạn muốn cài đặt thẳng phần mềm vào hệ thống. Trường hợp cài đặt vào gốc cài đặt trong khu vực thư mục nhà thì Sudo là không yêu cầu nhưng vẫn là một lựa chọn tốt vì với Sudo, các nhị phân kết quả sẽ thuộc sở hữu của root, sau này không phải chuyển đổi khi cài đặt vào hệ thống, hoặc cài sang máy khác.

10) Kiểm tra, thu nhận các nhị phân kết quả trong thư mục build/tool/alsa-tools-1.0.28/. Mặc dù từ nhiều gói nguồn nhưng với cách xây dựng như trên chúng ta sẽ thu được một gói nhị phân tổng hợp duy nhất.

Advertisements

Gửi phản hồi

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: