Unixで配布可能なバイナリを構築する


0

私の意図は、配布可能なバイナリを生成することです-私はビルドマシンで./configure-make-make installを実行し、インストールディレクトリのコンテンツをアーカイブしました(./configureおよびmake installを実行中にプレフィックスを付けたもの) )そして、テストのために別のユーザーの別のマシンに移動しました。テストの結果、コピーしたファイルがビルドマシンのパスにあるファイルにアクセスしようとしていることがわかりpermissions deniedます。そのため、エラーが発生します。以前はtar抽出中に問題になるのではないかと考えていましたが、ダニエル・ベックに感謝します。ダニエル・ベックは、アーカイブ処理とは関係ないことを理解してくれました。

root / sudo権限がありません。重要なのは、パーミッション関連の問題に遭遇することなく、1台のマシンでビルドし、他の多くのマシンでインストールファイルを使用する方法です。普遍的に配布可能なtarballを作成するルールは何ですか?

ありがとう。


Sghoshはユーザー名です。user_01またはuser_02ですか?
ダニエルベック

申し訳ありませんが私のミス、はいあなたは正しい、私が言いたかったことは、私はanother..editedに私のユーザ空間からファイルを移動していている
サヤン

OK -そして何ls -lls -ln宛先ホスト上で抽出した後、出力?
ダニエルベック

これがls -ln出力です- drwxr-xr-x 2 10036 501 4096 Nov 11 04:52 binそして、ls -l与えるdrwxr-xr-x 2 user_02 staff 4096 Nov 11 04:52 bin
サヤン

これは、ファイル(またはフォルダー)user_02へのアクセスが拒否されていますか?
ダニエルベック

回答:


1

問題は、多くのUnixプログラムが再配置できないことです。彼らは常にあなたが設定するためにあなたが与えたパスでファイルを検索します(それ自身の場所に相対的ではありません)。再配置可能にしたい場合は、任意のユーザーディレクトリ(または他の場所)にインストールし、そのファイルを見つけることができます。

一般的に配布可能なtarballを作成するための一般的なルールはありません。特に、ソースからインストールされるように作成されたプログラムには適用されません。ほとんどのUnixディストリビューションには、バイナリを配布するための特別なパッケージシステムがあります。一番いいのはそれを使うことです。tarballのバイナリとして出荷されるほとんどの商用アプリケーションは、環境変数を使用してファイルを見つけ、この変数を設定するラッパーシェルスクリプトを使用します(たとえば、自身のパスに関連するファイルを検索することにより)。この場合も、おそらくこのように動作するようにプログラムを変更する必要があります。


0

tar --no-same-ownertarballを解凍するときに(GNUバージョン用)を使用します。--no-same-permissions役に立つかもしれません。


引き続き同じエラーが発生します。
サヤン

これらのファイルを所有している@Sayan?このオプションを指定する場合は、抽出ユーザーが所有する必要があります。このオプションを持つgnu tarを使用しますか、それとも何か他のものを使用しますか?
ダニエルベック

うーん、理解を助けてください-+ xオプションを与えるたくさんのファイルをtarします...そして、それをすべてのユーザーがダウンロードして使用できるWebサイトにアップロードします。tarballをダウンロードするユーザーの所有権/許可を設定するにはどうすればよいですか?はい、gnu tarを使用しています。
サヤン

1
@サヤンあなたはしません。GNUへchmod--mode引数を使用して、インクルードされたファイルに同様の権限を設定できtarますが、tarボール内のファイルの元の所有権を破棄するのは、抽出ユーザーの責任です。たとえば、今日OpenSSHソースコードをダウンロードしました。tar tzvf filename.tar.gz「snap」ユーザーが所有しているファイルをリストし、tar tzvf --numeric-owner filename.tar.gz数値ユーザーID 1018を表示します。私のシステムでは、そのようなユーザーはいません。アーカイブを抽出するユーザーとして、--no-same-ownerまたはを指定する必要があり--owner MyUserNameます。
ダニエルベック

@Sayanこれは、他のユーザーは別のユーザーに属するファイルを作成できないため、rootとして抽出する場合にのみ発生します。tarアーカイブを作成および抽出する方法を詳細に説明しtar tv、tarボール内の権限とユーザー/グループを示す(部分的な)リストを含めると役立ちます。
ダニエルベック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.