KATOエンジニヤリング開発日誌

「アウトプット無きエンジニアにインプットもチャンスも無い」の精神で書いています

MariaDBインストール時にyumが失敗する際に確認すること

先日CentOS7でMariaDBをインストールしようとした際に、yumでSyntaxErrorが発生した事象を解決した方法を記載します。

www.kato-eng.info

MariaDBをインストールする

[masayuki@localhost ~]$ sudo yum install -y mariadb-server mariadb-devel
  File "/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax

yumはpythonで動いているらしく、今回は事前にpythonの3系をインストールする際にシンボリックリンクを変更していたことに起因していることが判明した。

# pythonのシンボリックリンクを確認
[masayuki@localhost ~]$ ls -la | grep python
lrwxrwxrwx   1 root root         12 May 11 23:47 python -> /bin/python3
# yumの設定ファイルを編集する
[masayuki@localhost ~]$ sudo vim /usr/bin/yum

/usr/bin/yumの設定ファイルの内容

#!/usr/bin/python
import sys
try:
    import yum
except ImportError:
    print >> sys.stderr, """\
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

... 以下、省略

設定ファイルの1行目「#!/usr/bin/python」を「#!/usr/bin/python2.7」に変更する。

再度、MariaDBのインストールコマンドを実行する。

[masayuki@localhost ~]$ sudo yum install -y mariadb-server mariadb-devel
Loaded plugins: fastestmirror, langpacks
base                                                                                                        | 3.6 kB  00:00:00
epel/x86_64/metalink                                                                                        | 6.3 kB  00:00:00
epel                                                                                                        | 4.3 kB  00:00:00
epel-debuginfo/x86_64/metalink                                                                              | 6.5 kB  00:00:00
epel-debuginfo                                                                                              | 3.0 kB  00:00:00
epel-source/x86_64/metalink                                                                                 | 6.3 kB  00:00:00
epel-source                                                                                                 | 3.5 kB  00:00:00
extras                                                                                                      | 3.4 kB  00:00:00
ius                                                                                                         | 2.3 kB  00:00:00
updates                                                                                                     | 3.4 kB  00:00:00
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax


Exiting on user cancel

先ほどのエラーは解消したが、別のエラーが発生したので再度調査すると、pythonのデフォルトのグローバルバージョンに関連したエラーらしい。

「/usr/libexec/urlgrabber-ext-down」ファイルの冒頭にあるpythonのバージョンを2.7に指定してあげる。

[masayuki@localhost ~]$ sudo vim /usr/libexec/urlgrabber-ext-down

/usr/libexec/urlgrabber-ext-downの設定ファイルの内容

#! /usr/bin/python
#  A very simple external downloader
#  Copyright 2011-2012 Zdenek Pavlas

... 以下、省略

設定ファイルの1行目「#! /usr/bin/python」を「#! /usr/bin/python2.7」に変更する。

再々度、MariaDBのインストールコマンドを実行する。

[masayuki@localhost ~]$ sudo yum install -y mariadb-server mariadb-devel
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * epel: ftp.riken.jp
 * epel-debuginfo: ftp.riken.jp
 * epel-source: ftp.riken.jp
 * extras: ftp.iij.ad.jp
 * ius: mirrors.tuna.tsinghua.edu.cn
 * updates: ftp.iij.ad.jp
(1/4): epel-debuginfo/x86_64/primary_db                                                                     | 620 kB  00:00:00
(2/4): epel-source/x86_64/primary_db                                                                        | 1.7 MB  00:00:00
(3/4): epel/x86_64/primary_db                                                                               | 4.7 MB  00:00:00
(4/4): ius/x86_64/primary_db

... 中略

Installed:
  mariadb-server.x86_64 1:5.5.52-1.el7

Dependency Installed:
  mariadb.x86_64 1:5.5.52-1.el7          perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7  perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
  perl-DBD-MySQL.x86_64 0:4.023-5.el7    perl-DBI.x86_64 0:1.627-4.el7                 perl-Data-Dumper.x86_64 0:2.145-3.el7
  perl-IO-Compress.noarch 0:2.061-2.el7  perl-Net-Daemon.noarch 0:0.48-5.el7           perl-PlRPC.noarch 0:0.2020-14.el7

Complete!

MariaDBのインストールが成功した。

参考サイト

yumが死ぬ件 : hayashikunsan

How to switch between Python versions on Fedora Linux - LinuxConfig.org