web-dev-qa-db-ja.com

RHEL5:64ビットシステムでのi386パッケージのインストールを禁止しますか?

Yumを使用して何かをインストールするたびに、パッケージのx86_64バージョンとi386バージョンの両方が利用可能な場合、両方がインストールされます。パッケージのArchを指定せずにそれを禁止できる方法はありますか?

13

multilib_policy = best/ etc/yum.confに追加します

Yumは、「最適な」パッケージをインストールしようとします。システムのArchは、そのパッケージのみをインストールします(使用可能な限り)。

64ビットシステムを使用している場合、yumはまずpackage.x86_64をインストールしようとします。それが存在しない場合は、i386とnoarchにフォールバックします。

デフォルトの設定はmultilib_policy = allで、可能なすべてのアーチをインストールすることを意味します。

16
toString

オプションexactarch = 1/ etc/yum.confでしばらく使用していて、うまくいきました。

Archを手動で指定することもできますが、指定しない場合はx86_64のみをインストールし、両方はインストールしません。

el6マニュアルによると、yum.conf(5)

          exactarch  Either  ‘1’  or ‘0’. Set to ‘1’ to make yum update only update the architectures of
          packages that you have installed. ie: with this enabled yum will not install an  i686  package
          to update an i386 package. Default is ‘1’.

...

          multilib_policy  Can  be set to ’all’ or ’best’. All means install all possible arches for any
          package you want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on
          x86_64, if it is available. Best means install the best Arch for this platform, only.

ところで、multilib_policy = bestexactarch = 1の両方が、しばらくの間デフォルトになっているようです。

Yum.confのexclude関数を使用します。

exclude=*.i386 *.i686
2
Tom_13

X86_64バージョンが既にインストールされている場合は、i386バージョンをインストールしようとします。

yum.confでexcludeを使用する場合、i386 Archでのみ利用可能なパッケージを除外することができます

より安全な方法は、インストール時にArchを明示的に要求することです

yum install package.x86_64
1
drAlberT

-x、--exclude = package特定のパッケージを名前またはグロブですべてのリポジトリの更新から除外します。構成オプション:除外

--disableexcludes = [all | main | repoid]構成ファイルで定義された除外を無効にします。 3つのオプションのいずれかを取ります:すべて==すべての除外を無効にしますmain == yum.confの[main]で定義された除外を無効にしますrepoid ==そのリポジトリに定義された除外を無効にします

上記のmanから使用することも、yumexをインストールすることもできます。これにより、インストールに必要なrpmを選択できます。

http://www.yum-extender.org/blog/

0
Rajat

私にとってうまくいくのは、マシンからすべてのix86パッケージを削除することです。今では、32ビットのものをインストールするように求められることはありません。

最初に、次のように.rpmmacrosをセットアップします。

cat ~/.rpmmacros
%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{Arch}

次に、これを実行します(私はbashを想定しています)。

rpm -qa | egrep "i.86$"

これにより、現在インストールされているx86_64以外のRPMのリストが表示されます。これですべて削除できます:

rpm -e $(rpm -qa | egrep "i.x86$")

これで、純粋な64ビットシステムが完成しました。

-デイブ

0
toppledwagon