問題タブ [rpmbuild]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
repository - 現在のディレクトリからの RPM の作成
ローカル ソースから rpm を作成しようとしています。pdebuild
ローカルディレクトリをソースとしてコピーし、そのコピーを操作するだけで、コンパイルを行うことは可能ですか? 私が行うたびに、rpmbuild -ba ...
アーカイブを解凍しようとしますがRPMBUILD/SOURCE
、そのようにしたくありません。
基本的に、コードでリポジトリをチェックアウトしrpmbuild -ba application.spec
、そのチェックアウトディレクトリで実行して、正しいことを実行できるようにしたいのですが...それは可能ですか?
linux - rpmパッケージからスペックファイルを抽出します
rpmパッケージからスペックファイルを抽出する方法はありますか(RPMファイルしかありません)
によってではない
(この構文は、rpmからのスクリプトのみをスペックファイルに取得しません)
bash - RPM 仕様ファイルで Bash 機能を使用できますか?
オープン ソース プロジェクトを検索すると、野生のスペック ファイルが bash 構造を使用していることがわかりますcat info|while read
。
しかし、それは本当に安全ですか?%build
rpm のドキュメントには、によって実行されているセクションを当てにできると書かれていBash
ますか?
rpm - RPM パッケージの作り方 (rpmbuild なし)
デブ:
回転数:
SOME_COMMAND と SOME_FILE として何を使用しますか?
rpm - coreutilsの後にAnacondaにパッケージを強制的にインストールさせるにはどうすればよいですか?
サブパッケージのセットを構築するカスタマイズされたRPMがあります。各サブパッケージのスペックファイルには、いくつかのシンボリックリンクを別のフォルダーにコピーするために使用される%postスクリプトがあります。
実行中のシステムにサブパッケージRPMの1つをインストールすると、正常に動作します。Anacondaを介して(キックスタートパッケージリストの一部として)インストールすると、RPMのインストール後のスクリプトが実行されないようです。
編集:結局のところ 、実際には実行されますが、次のようなエラーが発生します。
どうやら、Anacondaはcoreutilsを依存関係として指定しているにもかかわらず、coreutilsをインストールする前にRPMをインストールしようとしていますRequires:
。
だから、私の改訂された質問はタイトルです: coreutilsの後にパッケージを強制的にインストールするにはどうすればよいですか?
relative-path - RPMを構築するときに、.specファイルの場所を基準にして_topdirをどのように作成しますか?
.spec
という変数に依存するファイルがあります_topdir
。
現在、gitからSRPMソースをチェックアウトするときは、を正しく機能_topdir
させるために、を指している場所を変更する必要があります。rpmbuild
ハードコーディングされないように、ファイル_topdir
の場所に相対的である必要があることをどのように指定しますか?.spec
_topdir
packaging - ソース tarball から rpm パッケージを作成する - ただし、tarball にはスペック ファイルは含まれず、インストール スクリプトのみが含まれます
システム管理者として、RedHat ベースのディストリビューションにインストールする rpm パッケージを提供せず、ソース tarball のみを提供するアプリケーションに遭遇しました。ソース tarball には、rpm パッケージの作成プロセスを簡素化するスペック ファイルが含まれていません。代わりに、ソース tarball は、アプリケーションをシステムにインストールするために root として実行する必要がある bash/ksh/ スクリプトのみを提供します。
基本的にインストール スクリプトを実行してインストール スクリプトを実行する rpm パッケージを作成しようとしました。また、root 以外のユーザーとしてパッケージの rpmbuild を試行し、スクリプトのインストール ディレクトリが rpm 環境/マクロを参照するようにインストール スクリプトをできる限り変更して、正しいことをしようとしました。しかし、数百行の長さの複雑なインストール スクリプトを使用すると、他のスクリプトも呼び出されます...まあ、私はこの努力に失敗する運命にありました。
このような .spec-less ソース tarball をパッケージ化するより良い方法はありますか? より良い解決策は次のとおりです。
- アプリケーションのインストール前に何らかの方法でシステムのスナップショットを取得する
- 提供されたインストール スクリプトを使用してソース tarball をインストールします
- インストール後にシステムのスナップショットを作成し、インストールによって行われた変更/追加を確認します
- 変更/追加のリストを仕様ファイルに入れて、この方法で rpm パッケージを作成しますか?
この問題に対する有用な/関連性のある/有益な/面白い/深遠な意見やアドバイスをいただければ幸いです。
前もって感謝します
linux - RPM ファイルの解凍と再パック
RPMファイルがあります。その RPM にいくつかの変更を加え、再パックしてテストする必要があります。誰でも私を助けることができますか?
linux - rpm をビルドし、_topdir をオーバーライドしますが、BuildRequires deps を取得しますか?
libfoo-devel
オーバーライドするトリックを使用して、作成できる rpm があります_topdir
。bar
ここで、BuildRequires ' " を持つパッケージ " " をビルドしたいと考えています。ビルド ホストにインストールせずlibfoo-devel
に のコンテンツにアクセスする正しい方法が見つからないようです。どのようにすればよいですか?libfoo-devel
編集:
私のビルドとターゲット ディストリビューションはどちらも SuSE です。
を必要としないソリューションを好みますmock
。なぜなら、SuSE はそれをストック リポジトリに含めていないと思うからです。
その後の編集:
私が求める答えはbuild
パッケージにあると信じています。おそらく、それは ? に対する SuSE の答えmock
でしょうか? それとも、oBS サービスの分散バージョンですか?
説明
build は、SuSE Linux RPM を安全かつクリーンな方法でビルドするためのツールです。build は最小限の SuSE Linux をビルド システムとしてディレクトリにインストールし、このシステムに chroot してパッケージをコンパイルします。こうすることで、パッケージが BuildRoot を使用していない場合でも、動作中のシステムを破損する危険を回避できます (仕様ファイルの破損などによる)。
build は、spec ファイルで BuildRequires: 行を検索します。そのような行が見つかった場合、指定されたすべての rpm がインストールされます。それ以外の場合は、デフォルト パッケージの選択が使用されます。ビルドは不足している依存関係を自動的に解決しないため、指定された rpm はビルドに十分なものでなければならないことに注意してください。