Mục lục
* Giới thiệu
* Chuẩn bị, cấu hình
* Tạo chữ ký điện tử cho RPM
* Build RPM
Giới thiệu
Tác giả (James) có nhu cầu xây dựng riêng các gói RPM để tối ưu cho máy chủ của mình. Việc làm RPM thực chất là làm file spec và tạo một số patch (nếu cần thiết). Tuy nhiên để build được rpm, còn phải chuẩn bị một số cấu hình khác. Tác giả ghi lại trong bài này những chuẩn bị cần thiết đó.
Chuẩn bị directory và file cấu hình
Các máy Linux thuộc hệ RH đều có sẵn một directory cho việc làm RPM, đó là /usr/src/redhat. Quyền viết (write permission) vào
/usr/src/redhat thuộc về người quản trị (root account), tuy nhiên tác giả không thích dùng quyền root cho những việc không cần thiết đến root. Thực tế cũng có nhiều người sử dụng máy Linux muốn tự làm RPM nhưng không có quyền root.
Do đó ở đây chỉ dùng đến quyền hạn của một người dùng bình thường (normal user), người dùng này có toàn bộ quyền đọc và viết trong home directory của chính họ, giả sử là $HOME (thường là /home/username/).
1. Bước 1: tạo directory
$ mkdir $HOME/rpmbuild
$ mkdir $HOME/rpmbuild/BUILD
$ mkdir $HOME/rpmbuild/RPMS
$ mkdir $HOME/rpmbuild/SOURCES
$ mkdir $HOME/rpmbuild/SPECS
$ mkdir $HOME/rpmbuild/SRPMS
$ mkdir $HOME/rpmbuild/RPMS/i386
$ mkdir $HOME/rpmbuild/RPMS/noarch
2. Bước 2: chuẩn bị file cấu hình
$HOME/.rpmmacros với nội dung như sau
%_topdir /home/username/rpmbuild
### dòng này chỉ rằng, tất cả RPM của mọi architecture (như i386, i686, athlon,...) sẽ nằm chung một directory
%_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm
%packager User Name
### chữ kí điện tử
%_signature gpg
%_gpg_path /home/username/.gnupg
%_gpg_name User Name
3. Bước 3 (option): Tạo chữ kí điện tử
$ gpg --gen-key
$ gpg --armor --export UserName > RPM-GPG-KEY-UserName.txt
Build RPM
$ cd $HOME/rpmbuild
$ rpmbuild --ba --sign --target i686 SPECS/software.spec
Tham khảo
* Tác giả đã xem FAQ về cách build rpm without root privilege khi làm courier-imap RPM cho FC.
http://www.courier-mta.org/?FAQ.html~rpm
* Những cấu hình chi tiết, đọc thêm ở /usr/lib/rpm/macros
Nguồn :
http://james.dyndns.ws/index.php
Tác giả : James Nguyen