2016-08-24 2 views
0

パッケージを作成してslackware OSにインストールしようとしています。 私のパッケージにはバイナリ実行ファイルしかありません。 makepkgツールを使用して.tgzファイルでパッケージを作成しました。 しかし、installpkgツールを使用してパッケージをインストールしようとすると、バイナリファイルは常にルートディレクトリに展開されました。 それでは、宛先ディレクトリを(/ usr/binのような)別の場所に変更する方法を教えてください。slackwareのinstallpkgツールを使用してパッケージをインストールするときに特定のインストール先ディレクトリを設定する方法

doinst.shスクリプトをパッケージに使用するとは何ですか?私自身のスクリプトを書き込めますか?

おかげ

答えて

0
  1. がインストールされたファイル
  2. の一時ディレクトリ
  3. メイクツリー構造を作る 'たるみ-DESC' ファイルと(オプション) 'doinst.sh'
  4. で/ディレクトリをインストールしてください

    # 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 
    
/tmp/package-name-version-arch-build_tag.txz実行makepkg
+0

Slackwareのセットアップでは、OSをインストールするために灰を使用するため、doinst.shスクリプトで互換性のないコマンドを使用しないでください。 – bormant

+0

答えをありがとう。installpkgコマンドを入力すると、特定のディレクトリにバイナリファイルを解凍することができます。上記の例では、makepkgコマンドを実行する前にバイナリファイルを手動でusr/binにコピーしています。私の意図は、ディレクトリを作成し、そこにバイナリファイルを置いて、.tgzのパッケージを作ることです。installpkgを使ってインストールするとき、バイナリを自分のシステムの/ usr/binに展開する必要があります。 – skesh

+0

バイナリファイルは/ tmp/pkg/usr/bin/fileにありますのでご注意ください。 makepkgを/ tmp/pkgディレクトリで実行すると、パッケージは現在のディレクトリ(/ tmp/pkg)から完全なサブツリーを取得するので、packageにはusr/bin/fileが含まれます。 installpkgを実行すると、ファイルは/ usr/bin/fileに移動します。 – bormant

関連する問題