1. ホーム
  2. linux

[解決済み] rpmで依存関係を自動インストールする方法

2022-03-05 02:14:41

質問

私は2つのRPMパッケージをビルドしました

  • proj1-1.0-1.x86_64.rpm
  • libtest1-1.0-1.x86_64.rpm

proj1 ファイルに依存する libtest1.so が存在し、このようにRPMパッケージに正しく反映されます。

user@my-pc:~$ rpm -qp --requires proj1-1.0-1.x86_64.rpm
libtest1.so()(64bit)

user@my-pc:~$ rpm -qp --provides libtest1-1.0-1.x86_64.rpm
libtest1.so()(64bit)

のインストールは proj1 は、依存関係がないため失敗します。

user@my-pc:~$ rpm -ivh proj1-1.0-1.x86_64.rpm
error: Failed dependencies:
libtest1.so()(64bit) is needed by proj1-1.0-1.x86_64.rpm

を確保するにはどうすればよいのでしょうか? libtest1-1.0-1.x86_64.rpm が自動的にインストールされます。 のインストールは proj1-1.0-1.x86_64.rpm ?

を試しましたが --aid オプションで rpm -i とあるように こちら が、私の場合はうまくいきませんでした。

他に方法はないのでしょうか?

よろしくお願いします。

解決方法は?

(ローカル)リポジトリを作成し yum を使用すると、依存関係を解決することができます。

CentOSのwikiにハウツーが掲載されています。 CentOS wiki HowTos/CreateLocalRepos .


要約し、さらに最小化する(理想的ではないが、最も早い)。

  1. ローカルリポジトリ用のディレクトリを作成します。 /home/user/repo .
  2. そのディレクトリにRPMを移動します。
  3. 所有権とファイルシステムのパーミッションの一部を修正する。

    # chown -R root.root /home/user/repo
    
    
  4. をインストールします。 createrepo パッケージがインストールされていない場合は

    # createrepo /home/user/repo
    # chmod -R o-w+r /home/user/repo
    
    
  5. リポジトリ設定ファイルを作成する、など。 /etc/yum.repos.d/myrepo.repo を含む

    [local]
    name=My Awesome Repo
    baseurl=file:///home/user/repo
    enabled=1
    gpgcheck=0
    
    
  6. を使用してパッケージをインストールします。

    # yum install packagename