1

依存関係が多すぎます。

  1. OS (RHEL vs CentOS vs Suse vs Ubuntu)
  2. OS バージョン番号
  3. コンパイラ名とバージョン番号
  4. 依存ライブラリとそのバージョン番号
  5. ABI 互換性を確保するためにライブラリをビルドするために使用されるコンパイラ オプション

現在、私のコードはほとんどが C++ であり、rpm を作成する必要があり、名前は十分に説明的である必要があります。ただし、項目 1 ~ 5 を考慮に入れると、rpm の名前が非常に大きくなるため、処理が難しくなります。

このような問題に対処するための既知のガイドラインはありますか?

4

1 に答える 1

2

ガイドラインは、仕様ファイルを正しく入力し、rpmbuild によって生成された名前を使用することです。

  1. OS のバージョンはリリースタグに含まれています。たとえば、Releaseタグを1.el6RHEL/CentOS 用に設定できます。一部のディストリビューションは、 の%{dist}ようなものに展開されるマクロを提供し.el6ます。
  2. 最初のポイントと同じ
  3. コンパイラの規則はありません。コンパイラの名前をソフトウェアの名前に追加できますが、同じソフトウェアを複数回インストールできるため、競合を処理する必要があります。
  4. 依存ライブラリは通常、rpm の名前には入れられません。それは非常に長い名前になります。それらはRequiresスペックファイルのタグにリストされています。C++ プログラムの場合、rpm は依存関係を自動検出でき、設定する必要があるのはBuildRequiresタグ (ソフトウェアのビルドに必要なパッケージ)だけです。
  5. 4. と同様に、ライブラリのコンパイラ オプションは通常、ファイル名に含まれません。ただし、rpm は、可能な限り多くの機能を有効にしてコンパイルする必要があります。

したがって、あなたの質問に答えるために、最初の 2 つの点についてはガイドラインがありますが、他の点についてはガイドラインはありません。

于 2013-04-20T17:11:18.123 に答える