問題タブ [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.
upgrade - RPM アップグレードは RPM をアンインストールします
プロジェクトの RPM をアップグレードしています。問題は、projectname-1.0-0 から projectname-1.0-1 にアップグレードすると、最初に新しいプロジェクトがインストールされ、古いプロジェクトがアンインストールされるため、全体としてプロジェクトが完全に削除されることです。アップグレード中に「vv」オプションを使用したところ、インストール後にアンインストールが行われたことが出力に示されました。
誰かこの問題を助けてください。RPM 仕様または rpmbuild オプションで特に変更する必要があるものはありますか?
linux - rpmbuild 仕様ファイル %install セクション エラー
次のような仕様ファイルがあります。
rpmbuild を実行すると、次のエラーが表示されます。
/etc/
ディレクトリ内にディレクトリを手動で作成し、次に/etc/logrotate.d
ディレクトリを作成することで、これを回避できます/tmp/build_my_app-1.0-2/
。
rpmbuild を再実行すると、機能します。
これは、インストールセクションにこのディレクトリを作成していないためだと思いますが、アプリケーションに直接関係していないため、入れたくありません。
私の推測では、手動の介入なしでビルドが機能するように、これを修正するために使用できる巧妙なタグがあると思います。
私の質問: 誰かがこれを達成する方法を提案してもらえますか (それが可能であると仮定します)、または最初にこれを設定するために rpmbuild に関するスクリプトを作成する必要があるかどうかを教えてください。
rpm - インストールせずにRPMビルドプロセス
独自の rpm パッケージを作成しようとしていますが、疑問がいくつかあります。
まず第一に、いくつかの場所で、ルートとして rpm をビルドするべきではないと警告しました。何故ですか?ビルド プロセス中、rpmbuild はファイルをシステムにインストールするインストール ステージを通過する必要があります。
私が理解している限り、私がルートでない場合、それはできません。rpmbuild プロセスがエラーで終了します。問題は、システムに何かをインストールせずに rpm を構築することが本当に可能かどうかということです。それとも最終的に、ビルド プロセスを完了するために root になる必要がありますか?
linux - rpmbuildを使用して既存の設定ファイルを更新する方法は?
rpmbuildスペックファイルを使用して既存の設定ファイルを更新する方法を調べてきました。
例として、私のrpmで、設定ファイルに行を追加したいと思います。/etc/stunnel/stunnel
私は現在、%installセクションにこれを持っています:
rpmを実行するたびに、これらの同じ行が構成ファイルに追加されるため、これは明らかにごみです。
/etc/stunnel/stunnel.conf
また、rpmパッケージを消去するときにファイルを削除したくないので、ファイルをrpmの一部にしたくありません。
私の質問は次のとおりです。
- /etc/stunnel/stunnel.confをrpmの一部から除外するにはどうすればよいですか?
- rpm中に設定ファイルに行を追加する正しい方法は何ですか?
- これを機能させる方法や、スペックファイルで使用できる数行の例を確認できるリンクを誰かに提供してもらえますか。
Max Rpmで公式ガイドを見てきましたが、これまでのところ、私の問題に対する答えは見つかりませんでした。
python - ビルドした Python RPM がインストールされない
キックスタート プロセスを介して構築された複数の Oracle Linux サーバーに複数のバージョンの Python をインストールする必要があるため、yum リポジトリ用の Python rpm を構築したいと考えました。デフォルトのシステムPythonインストールにインストールされない「make altinstall」を使用して手動でPythonをビルドできたので、それが正しい方法だと思いました。
多くの試行錯誤の後、.bz2 python 2.7 パッケージで始まる rpm を構築することができましたが、インストールしようとするとエラーが発生します。
なに…??? インストールしようとしているのはPythonです!!! システムのデフォルトの Python (2.4) は /usr/bin/python にあります!!! また、python ディレクトリのプロトタイピングの場所は /tmp/python2.7 です (実行可能ファイルは /tmp/python2.7/bin/python2.7 でした)。では、なぜ /usr/local/bin を調べているのでしょうか?
これが私の RPM SPEC のコアです。
rpm ビルド ログをよく見ると、次のように表示されます。
さて、/usr/local/bin の出番です... さて、問題は、これらの要件をどのように決定しているのかということです。何か間違ったことを指定しましたか?何かをオーバーライドする必要がありますか?
多くの rpm 初心者のように、私はビルド部分を取得しますが、rpmbuild の最後に何が起こるか、実際に rpm ファイル (%files で指定したファイルを除く) に入れられるものと、その後に何が起こるかについては、あまり理解していません。 rpm インストールを実行すると、実際に発生します。
インストールが失敗する理由、または rpm ビルドがビルドしようとしているものが必要な理由を理解するために読むことができるものを誰か提案できますか?
compilation - rpmbuild:rpmbuildを使用してautoconfに通知したり、フラグを無効にするように構成したりするにはどうすればよいですか?
CentOS5.7システムで実行しています。
ソースパッケージと.specファイルを他の人からダウンロードしました。次のようなバニラコマンドを使用して、ソースからRPMを構築しようとしています。
ただし、このビルドは失敗しています。コードは少しずさんで、いくつかの警告を生成しています。このツールチェーンの一部は、 「すべての警告をエラー-Werror
にする」フラグを有効にすることです。したがって、ビルドは次のエラーで失敗します。
作成者がコードを修正することが適切な修正であることはわかっていますが、短期的にはこの問題を回避したいと思います。動作するRPMが必要です。
./configure
どちらかのように見えるか、自動的にフラグautoconf
を追加しています。Makefileを自分で編集する以外に、ビルド-Werror
のフラグを無効にするにはどうすればよいですか?-Werror
@pwanの回答に応じて更新します。
.specファイルはかなり一般的であり、特別なフラグを指定していません。
repository - 別のリポジトリから別のパッケージを更新するパッケージ
自分のパッケージを保存するリポジトリを作成しました。システムは私と他のいくつかの公開リポジトリを使用します。
これで、別のリポジトリからの他のパッケージの更新として使用したいパッケージがリポジトリにあります。
リポジトリはrpmパッケージベースです。
通常、自分のパッケージにマークを付けて別のパッケージを更新することは可能ですか?
symlink - rpmbuildを介してシンボリックリンクをパッケージ化しますか?
パッケージにシンボリックリンクを保持するためにrpmbuildを作成することは可能ですか?
現在の動作はファイルのコピーを作成することですが、これは避けたいと思います。
git - git を使用して SRPM のカスタマイズを追跡するにはどうすればよいですか?
私たちのチームは、RHEL/CentOS で配布されるさまざまなパッケージのカスタマイズを頻繁に実行します。私たちのワークフローには、SRPM のインストール、rpmbuild -bp
ソースのアンパックとパッチの実行、変更の実行、specfile に含まれる .patch の作成、後でモックで使用するための新しいカスタマイズされた SRPM のビルドが含まれます。
このプロセスはうまく機能しますが、現在、変更や仕様ファイルの変更を追跡するためにソース管理の形式を使用していません。私の (確かに基本的な) git の理解に基づいて、git をこのワークフローに挿入し、その力の一部を活用していくつかのステップを最適化することが可能であると思います (SCM の通常の利点に加えて)。
たとえば、ソースのコピーをdiff
後で作成するのではなく、アップストリームにパッチが適用されたソースの最初のコミットを作成してから、変更を加えることができます。準備ができたら、 を使用git format-patch
して機能パッチを作成し、specfile に追加します。
また、スペックファイルのバージョン管理も行いたいと考えていますが、それを実現する最善の方法はわかりません。
だから私の質問は3つあります:
- アップストリーム パッケージをカスタマイズするときに SCM を使用している人はいますか?
- Git をワークフローに統合する最も効果的な方法は何ですか?
- バージョン管理されたカスタム RPM オーサリングをより助長する、より良いワークフローはありますか?
追加クレジット: git ベースのワークフローを想定すると、プッシュを受け入れる中央リポジトリをどのように構築すればよいでしょうか? サブモジュールを含む 1 つのレポ? パッケージごとに 1 つのレポ?
rpm - RPM : Requires(post) リストの取得方法
インストール後のセクションに必要なツールを指定するために Requires(post) を使用したスペック ファイルを含む rpm パッケージを生成しました。
では、rpm パッケージから Requires(post) tools リストのリストを取得するにはどうすればよいでしょうか? rpm -qp --whatrequires .rpm - ツールを一覧表示しません