var jiathis_config = {data_track_clickback:true};
  • RPM Packager 學習(2)

    日期:2010-11-13 | 分类:Linux编程

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/freakrobot-logs/83632078.html

    1.先總結一下rpmbuild的目錄:
    BUILD rpmbuild命令在這個目錄中建立軟件
    RPMS rpmbuild 命令把她創建的二進制包放在此處
    SOURCES 應用程序源代碼
    SPECS .spec文件
    SRPMS .src.rpm

    ------------------------------------------------------------

    2.spec 文件

    Emacs果然強大,自動生成了不少東西,一一做筆記
    Name: 軟件名
    Version: 版本號
    Release: 軟件包的版本號
    Summary: 軟件摘要
    Packager: 打包員名號
    Group: Linux應用軟件的分類
    License: guess what
    URL:
    Source0: 包的名字
    BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
    定義一個用於 測試安裝的目錄,定義好Buildroot後,就可以通過使用變量$RPM_BUILD_ROOT將應用軟件安裝到Buildroot定義的目錄下,
    BuildRequires:
    Requires:
    兩種依賴包,編譯依賴和運行的依賴
    %description
    對軟件描述,可以持續多行。
    下 面主要分為4部分,%prep,%build,%configure,%install
    %prep
    %setup -q
    準備工作, 一般用%setup就可以了。

    %build
    %configure 相當於./configure
    make %{?_smp_mflags}
    絕大多數情況用make就可以了,編譯libfetion時我先用了qmake-qt4。

    %install
    rm -rf $RPM_BUILD_ROOT
    make install DESTDIR=$RPM_BUILD_ROOT
    可以使 用%makeinstall安裝程序,也可以根據所用軟件帶的install.sh腳本來自己寫。

    %clean
    rm -rf $RPM_BUILD_ROOT


    %files 定義了需要包括進軟件包的所有文件,要求非常嚴格
    %defattr(-,root,root,-)
    %doc
    % {_bindir}被擴展為當前二進制目錄
    %{_mandir}使用手冊
    %{_datadir}數據(包括圖片等)

    %changelog 如名日誌
    * Sat May 08 2010 freakrobot
    -Initial libfetion package

    ------------------------------------------------------------

    3. 最後是rpmbuild的參數使用:
    -ba 同時建立二進制軟件包和源代碼軟件包
    -bb 只建立二進制軟件包
    -bc 只編譯不製作rpm包
    -bp 為建立rpm包做準備
    -bi 創建二進制軟件包並安裝
    -bl 檢查RPM包的文件列表
    -bs 只建立源代碼包

    分享到:

    历史上的今天:

    IA-32平台 2010-11-13
    Linux Road Map 2010-11-13
    ACPI 2010-11-13

评论啦