epel repoがPythonの更新された依存関係を読む場所を理解していないようです。たとえば、実行すると、sudo yum update
次のメッセージが表示され、正常に実行され、リストされた依存関係を満たしますが、依然としてpip install requests
依存pip install six
関係に対して同じメッセージが表示されます。また、私のフォルダにリクエストと6つのパッケージを表示し/usr/lib/python2.6/site-packages
、問題なくPythonにインポートすることもできます。
私のCentOS-Base.repoファイルからepelを実行します。
[epel]
name = none
baseurl = http://mirror.rightscale.com/epel/6/x86_64/archive/20140514/
http://ec2-us-east-mirror.rightscale.com/epel/6/x86_64/archive/20140514/
http://ec2-us-west-mirror.rightscale.com/epel/6/x86_64/archive/20140514/
failovermethod=priority
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
# yum repolist
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: mirror.rightscale.com
* centosplus: mirror.rightscale.com
* epel: mirror.symnds.com
* extras: mirror.rightscale.com
* rightscale-epel: mirror.rightscale.com
* updates: mirror.rightscale.com
rightscale-epel | 951 B 00:00
repo id repo name status
base none 6,367
centosplus none 48
epel Extra Packages for Enterprise Linux 6 - x86_64 11,830
extras none 14
jenkins Jenkins 314
percona CentOS 6 - Percona 671
puppetlabs-deps Puppet Labs Dependencies El 6 - x86_64 77
puppetlabs-products Puppet Labs Products El 6 - x86_64 538
rightscale-epel none 285
updates none 909
repolist: 21,053
手動で試しても、次のようにrpm -ivh python-boto-2.38.0-1.el6.noarch.rpm
なります。
error: Failed dependencies:
python-requests is needed by python-boto-2.38.0-1.el6.noarch
python-rsa is needed by python-boto-2.38.0-1.el6.noarch
python-six is needed by python-boto-2.38.0-1.el6.noarch
# sudo yum update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: ec2-us-west-mirror.rightscale.com
* centosplus: ec2-us-west-mirror.rightscale.com
* epel: mirror.symnds.com
* extras: ec2-us-west-mirror.rightscale.com
* rightscale-epel: ec2-us-west-mirror.rightscale.com
* updates: ec2-us-west-mirror.rightscale.com
rightscale-epel | 951 B 00:00
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package libunwind.x86_64 0:1.1-2.el6 will be updated
---> Package libunwind.x86_64 0:1.1-3.el6 will be an update
---> Package python-boto.noarch 0:2.27.0-1.el6 will be updated
---> Package python-boto.noarch 0:2.38.0-1.el6 will be an update
--> Processing Dependency: python-six for package: python-boto-2.38.0-1.el6.noarch
--> Processing Dependency: python-rsa for package: python-boto-2.38.0-1.el6.noarch
--> Processing Dependency: python-requests for package: python-boto-2.38.0-1.el6.noarch
---> Package python-pip.noarch 0:1.3.1-4.el6 will be updated
---> Package python-pip.noarch 0:7.1.0-1.el6 will be an update
---> Package ssmtp.x86_64 0:2.61-21.el6 will be updated
---> Package ssmtp.x86_64 0:2.61-22.el6 will be an update
--> Running transaction check
---> Package python-boto.noarch 0:2.38.0-1.el6 will be an update
--> Processing Dependency: python-six for package: python-boto-2.38.0-1.el6.noarch
--> Processing Dependency: python-requests for package: python-boto-2.38.0-1.el6.noarch
---> Package python-rsa.noarch 0:3.1.1-5.el6 will be installed
--> Finished Dependency Resolution
Error: Package: python-boto-2.38.0-1.el6.noarch (epel)
Requires: python-requests
Error: Package: python-boto-2.38.0-1.el6.noarch (epel)
Requires: python-six
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
答え1
手動pip
インストールはRPM依存関係を満たさず、インストール場所によっては実際にベンダーまたはリポジトリ提供パッケージ(RPMの意味ではなくファイルが存在するという意味)と競合する可能性があります。依存関係はRPMパッケージの一部であり、通常はyum
次のデータベースで構成されています。
Aはyum install python-boto
私のRHEL6 + EPELテストシステムでうまく動作するので、リストされたエラーの原因が何であるかわかりません。 EPEL以外にパッケージリポジトリを使用しますか? EPELと他のパッケージストアの両方がアクティブなホストとの間でパッケージ間で競合が発生することを確認しました。として削除して再インストールする必要がありますインストールの競合が発生します。エラーが発生し、これに対してrpmfusionを実行します)。
手動pip
インストールも状況を複雑にします。インストールする場合はpip
ホームディレクトリにインストールし、それ以外の場合はRPMが使用するベンダースペースにインストールしません。