エラーが出る
CentOS6でEPEL7のリポジトリのミラーを作ろうとしていたらエラーが出た。/etc/yum.repos.d/epel-local.repo
に[epel7]
というセクションを作ってreposync
した。
# reposync --arch=x86_64 --norepopath -r epel7 -p /var/www/html/epel/7/x86_64
Traceback (most recent call last):
File "/usr/bin/reposync", line 352, in <module>
main()
File "/usr/bin/reposync", line 195, in main
my.doSackSetup(arches)
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 650, in doSackSetup
return self._getSacks(archlist=archlist, thisrepo=thisrepo)
File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 687, in _getSacks
self.repos.populateSack(which=repos)
File "/usr/lib/python2.6/site-packages/yum/repos.py", line 324, in populateSack
sack.populate(repo, mdtype, callback, cacheonly)
File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 176, in populate
db_un_fn = misc.decompress(db_fn)
File "/usr/lib/python2.6/site-packages/yum/misc.py", line 1100, in decompress
_decompress_chunked(filename, out, ztype)
File "/usr/lib/python2.6/site-packages/yum/misc.py", line 732, in _decompress_chunked
raise Errors.MiscError, msg
yum.Errors.MiscError: xz compression not available
どうやらyumがxzを扱えていないらしい。
対策
ググったらmock
というパッケージを入れると問題が解決するとのこと。たぶんmockのおかげじゃなくて、修正版mockが入ることでyumがxzに対応するんだと思う(未確認)。
# yum install epel-release -y
# yum install mock -y
参考
https://access.redhat.com/discussions/918083
https://bugzilla.redhat.com/show_bug.cgi?id=1099676