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


13

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

回答:


16

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

Yumはシステムに「最良の」package.archをインストールしようとし、(利用可能である限り)その1つだけをインストールします。

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

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


1
+1はい、それが最良の答えです。残念ながら、ほとんどの人は現在このオプションを使用していません。
knweiss

3

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

手動で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の両方がデフォルトになっているようです。


2

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

exclude=*.i386 *.i686

またはexclude=*.i?86(/etc/yum.conf)。そうすれば、yum検索は32ビットのパッケージもリストしません。
basic6 2015年

1

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

yum.confでexcludeを使用すると、i386 archでのみ使用可能なパッケージを除外できることに注意してください。

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

yum install package.x86_64

0

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

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

上記のmanから使用することも、yumexをインストールして、guiを使用して、インストールする必要のあるrpmを選択することもできます。

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


除外について知っています。毎回タイプしたくないだけでなく、エイリアスを作成したくもありません。デフォルトで64ビットシステムにi386をインストールするのは良いことだとは思いません。
ニコライプロコシェンコ

その場合は、より適切なオプションをGUIから選択します
Rajat

0

私にとってうまくいくのは、マシンからすべての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ビットシステムが完成しました。

-デイブ


-3

リストi386

yum list installed | grep i386

そして今、それを削除するか、x86_64に更新できます。


1
これは質問の答えにはなりません。
スヴェン

それは状況を修復するのに役立つかもしれませんが、そもそもそれらがインストールされないようにする方法の質問に対する答えではありません...
HBruijn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.