2016-08-24 64 views
0

我正在嘗試打包並將其安裝在slackware操作系統中。 我的軟件包只有一個二進制可執行文件。 我使用makepkg工具創建了包含.tgz文件的包。 但是,當我嘗試使用installpkg工具安裝軟件包時,二進制文件始終提取到根目錄。 那麼如何將目標目錄更改爲其他位置(如/ usr/bin)。如何使用slackware的installpkg工具安裝軟件包時設置特定的目標目錄

包中的doinst.sh腳本的用途是什麼?我可以自己寫腳本嗎?

感謝

回答

0
  1. 使臨時目錄
  2. 已安裝文件的
  3. 製作樹狀結構
  4. 製作安裝/目錄與 '鬆弛降序排序' 文件和(可選) 'doinst.sh'
  5. 運行makepkg /tmp/package-name-version-arch-build_tag.txz

    # mkdir /tmp/pkg; cd /tmp/pkg 
    # mkdir -p usr/bin 
    # cp /path/to/your/file usr/bin/ 
    # chmod a+x usr/bin/file 
    # mkdir install 
    # cat <<EOF >install/slack-desc 
    appname: appname (short description of app) 
    appname: 
    appname: Long description of appname, wrapped at 71 characters *after* the 
    appname: colon following "appname" (and the 'handy ruler' should start at 
    appname: that colon and be exactly 71 characters long). 
    appname: If there is room, there might be a link to the homepage of the 
    appname: application on one of these lines, but it's not necessary. 
    appname: 
    appname: The maximum number of lines prefixed by "appname:" is 11. 
    appname: Lines without any other text should *not* have a space after the : 
    appname: 
    EOF 
    # makepkg /tmp/appname-1.0-x86_64-1_me.txz 
    # upgradepkg --install-new /tmp/appname-1.0-x86_64-1_me.txz 
    
+0

請記住,Slackware安裝程序使用ash來安裝操作系統,因此請勿在doinst.sh腳本中使用不兼容的命令。 – bormant

+0

感謝您的回答。當我們鍵入installpkg命令時,可以將二進制文件提取到特定的目錄。現在在上面的示例中顯示,它在將運行makepkg命令之前手動將二進制文件複製到usr/bin。我的目的是創建一個目錄,並將二進制文件放入其中並製作一個.tgz包。然後,在使用installpkg進行安裝時,我需要將該二進制文件提取到我的系統的/ usr/bin中。 – skesh

+0

請注意二進制文件轉到/ tmp/pkg/usr/bin /文件。在/ tmp/pkg目錄中運行makepkg時,程序包會從當前目錄(/ tmp/pkg)獲取完整子樹,因此程序包包含usr/bin/file。當您運行installpkg時,該文件將轉到/ usr/bin/file。 – bormant

相關問題