本文的演示示例中用到的系統平台是rhel5.4。
製作rpm包需要用到開發發工具,這裡可以通過基於yum安裝"development tools"和"development libraries"兩個開發組來進行安裝。同時,本文只是乙個製作示例,以gnu的hello來演示製作過程。
1、製作rpm包要以普通使用者的身份進行,因此,這裡先新乙個使用者marion,以之作為製作rpm包的使用者。
# useradd marion
# passwd marion
2、以marion使用者的身份登入系統
首先建立檔案.rpmmacros,定義製作rpm包時的工作目錄等需要的巨集,內容如下:
%packager marion
%_topdir /home/marion/rpmworkshop
%_tmppath /var/tmp
%_rpmtopdir %
%_builddir %/build
%_rpmdir %/rpms
%_sourcedir %/sources
%_specdir %/specs
%_srcrpmdir %/srpms
接著建立/home/marion/rpmworkshop目錄,這是製作rpm包的工作目錄,裡面包含rpms,specs,build,sources和srpms幾個子目錄:
# mkdir -pv ~/rpmworkshop/
3、開始製作rpm包
而後,於specs目錄中建立hello.spec檔案,內容如下:
name: hello
version: 2.7
release: 1%
summary: the gnu hello distribution.
license: gplv3+
url:
# source0: /%-%.tar.gz
buildrequires: gettext
# requires:
requires(post): info
requires(preun): info
group: system environment/libraries
buildroot: /tmp/hellorpm
%description
this is the gnu hello distribution.hello prints a friendly greeting.
it also serves as a sample gnu package, showing practices that may
be useful for gnu projects.
%prep
%setup -q
%build
%configure
make %
%install
make install-strip destdir=%
%find_lang %
rm -f %/%/dir
%post
/sbin/install-info %/%.info %/dir || :
%preun
if [ $1 = 0 ] ; then
/sbin/install-info --delete %/%.info %/dir || :
fi%files -f %.lang
%/hello
%doc %/man1/hello.1.gz
%doc %/%.info.gz
%changelog
* fri feb 10 2012 marion 2.7-1
- initial version of the package
4、上述工作完成後,準備工作已經就緒,接下來就可以使用如下命令製作二進位制的rpm包和src格式的rpm包了:
# rpmbuild -ba hello.spec
製作完成的二進位制格式的rpm包位於rpms目錄中,src格式的rpm包位於srpms目錄中。
5、接下來可以以root使用者嘗試安裝剛剛製作成功的rpm包了。
以hello 為例,製作 a so 庫檔案
先編寫hello程式 建立工作目錄,mkdir hello test 新建 hello.c 檔案 touch hello.c 可以用 gedit hello.c 也可以用vi hello.c 開啟檔案後,輸入如下 int main int argc,char ar 在一些編譯器中,這行 自動生成 e...
以咖啡店為例演示Web應用程式擴充套件
通過負載均衡器進行橫向擴充套件 如果使用更小點可以安置3個咖啡機的櫃檯,同時我只做增加或減少櫃檯數量操作,那麼房東肯定不會太在意。那麼,只要預先通知,他就可以減少或者增加乙個設施。但是,如果同乙個時間,我只能照顧乙個櫃檯上的生意,那該怎麼弄?幸運的是,這裡有一種特殊的櫃檯恰恰就是這麼設定的,這個櫃檯...
迴圈的巢狀,以for迴圈為例
include int main putchar 10 內迴圈執行一次後換行 return0 列印結果 注 1 一重迴圈解決線性問題 二重迴圈解決平面問題 三重迴圈解決立體問題。2 建議for語句的迴圈控制變數的取值採用 左閉右開 的寫法,因為這樣的做法跟後面的陣列下標,是完全吻合的。3 多重迴圈中...