1

システム管理者として、RedHat ベースのディストリビューションにインストールする rpm パッケージを提供せず、ソース tarball のみを提供するアプリケーションに遭遇しました。ソース tarball には、rpm パッケージの作成プロセスを簡素化するスペック ファイルが含まれていません。代わりに、ソース tarball は、アプリケーションをシステムにインストールするために root として実行する必要がある bash/ksh/ スクリプトのみを提供します。

基本的にインストール スクリプトを実行してインストール スクリプトを実行する rpm パッケージを作成しようとしました。また、root 以外のユーザーとしてパッケージの rpmbuild を試行し、スクリプトのインストール ディレクトリが rpm 環境/マクロを参照するようにインストール スクリプトをできる限り変更して、正しいことをしようとしました。しかし、数百行の長さの複雑なインストール スクリプトを使用すると、他のスクリプトも呼び出されます...まあ、私はこの努力に失敗する運命にありました。

このような .spec-less ソース tarball をパッケージ化するより良い方法はありますか? より良い解決策は次のとおりです。

  1. アプリケーションのインストール前に何らかの方法でシステムのスナップショットを取得する
  2. 提供されたインストール スクリプトを使用してソース tarball をインストールします
  3. インストール後にシステムのスナップショットを作成し、インストールによって行われた変更/追加を確認します
  4. 変更/追加のリストを仕様ファイルに入れて、この方法で rpm パッケージを作成しますか?

この問題に対する有用な/関連性のある/有益な/面白い/深遠な意見やアドバイスをいただければ幸いです。

前もって感謝します

4

2 に答える 2

0

最善の解決策は、アプリケーションの仕様ファイルを提供するように上流に要求することだと思います。もう 1 つの方法は、エクスペリエンス パッケージ メンテナーにアプリケーションのパッケージ化を依頼することです。または、Makefile を使用してインストール ファイルを追跡したため、 checkinstallを探索することもできます。自分でパッケージ化する場合は、説明と多くの例が記載されているこのリンクを読む必要があります。

于 2011-06-10T06:29:55.183 に答える
0

あなたが言及したような多くのスクリプトを見てきましたが、これらの恐ろしいインストールを販売している会社を確実に伝えることができると思います.

最善の策は、適切なインストール可能なパッケージをリクエストすることです。なぜパッケージが configure;make;make-install よりも優れているのか、この install.sh ナンセンスよりも優れているのかを読んでください。それを武器に、たとえそれが論点であっても、それらを3千年紀に入れてみてください. 大変ですが、最終的には最もやりがいがあります。

それを除けば、そのパッケージをビルドする必要があります (そして、今ではその理由を読んでいるでしょう)。残念ながら、コンパイル、宛先ホストへのクエリ、ライセンスの検索、もう少しコンパイルなどを行うため、ペイロードをパッケージ化できないアプリやベンダーがいくつかあります。ここでの私の偏見はよく理解されています。

于 2014-10-25T04:35:39.847 に答える