2017-02-26 76 views
0

我對於使用RPM構建和分發軟件包相對較新。使用RPM指定installdir/builddir

我試圖實現以下的功能,我有點困惑如何管理:

  1. 在構建機器,RPM軟件包應該建立自己的帳戶,例如下在/ home/username/rpmbuild下。該文件夾具有適當的結構(例如包含SPECS,RPMS,SOURCES等)。我想打包的文件基本上是位於SOURCES目錄中的.tgz文件的二進制文件。我也有root權限,所以這不應該是一個問題。
  2. 在''客戶''機器上,軟件應該安裝在特定的目錄下,例如,/specific_mountpoint /程序名。即使用戶應該執行簡單的rpm -ivh rpm_name.rpm命令而無需其他參數,也會發生這種情況。

我有以下問題:

  • 我目前的RPM過程的理解是,構建機器必須在過程中的rpmbuild鏡像客戶機。如果這是正確的,那麼我必須通過生成機器上的rpmbuild進程創建/ specific_mountpoint/program_name,對吧?這是否意味着我必須將文件從RPM_BUILD_ROOT複製到該目錄,或者是否有方法覆蓋spec文件中的RPM_BUILD_ROOT?
  • 我的問題是,在spec文件中的%文件下,我似乎無法指向rpmbuild從/ specific_mountpoint/program_name(因爲它目前進入/ home/username/rpmbuild/BUILDROOT文件夾)。我試圖壓倒這種行爲,但沒有成功。

任何想法和具體規格文件都是值得歡迎的。

我正在使用RPM v4.8。我提到這一點,因爲特定的標誌已從我正在閱讀的內容中棄用。

非常感謝!

回答

2

不,你很近但稍微偏離。您在buildroot中構建的內容等同於目標機器上的根目錄。所以你的東西在/home/username/rpmbuild/BUILDROOT/packagename-version/specific_mountpoint/program_name AKA %{buildroot}/specific_mountpoint/program_name。然後在%files中列出目的地位置,例如%doc /specific_mountpoint/program_name/README

+0

非常感謝!這工作完美。 –