yumコマンドで YumRepo Error が出たときの対処法

CentOSのアップデートを行おうとyumコマンドを実行したら以下のエラーが出ました。


# yum list updates
読み込んだプラグイン:fastestmirror, security
Determining fastest mirrors
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
エラー: Cannot find a valid baseurl for repo: base

調べてみると、CentOSのサポートが切れるとyumコマンドが失敗するらしい。僕が使っていたのはCentOS 6.10だったのだけれど、CentOS 6系は 2020年11月30日にサポートが終了していたようです。新しいバージョンに乗り換えなくてはならないのでしょうが、すぐにできるわけでもないのでyumコマンドが成功するように対処してみました。「http://vault.centos.org/」のサイトからパッケージを取得するようにすれば良いらしいです。ここには過去のバージョンのパッケージが収められているとのこと。

こんな感じです。

では、やってみます。まずCentOSのバージョンを確認します。

# cat /etc/redhat-release
CentOS release 6.10 (Final)

リポジトリのファイルは /etc/yum.repos.d 配下にあるので、ここにある CentOS-Base.repo ファイルを修正します。

# cd /etc/yum.repos.d
# vi CentOS-Base.repo

mirrorlist= の行をコメントアウトし、新たに baseurl= の行を追加します。


[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra ←★コメントアウトする
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=http://vault.centos.org/6.10/os/$basearch/ ←★この行を追加する
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

追加した行 baseurl=http://vault.centos.org/6.10/os/$basearch/ の太字部分はCentOSのバージョンにあわせて書き換えてください。 CentOS-Base.repo ファイルにはbaseブロック以外にも updates、extras、centosplus、contrib のブロックがあるので同様に書き換えます。

ファイルを保存したら、再度、yumコマンドを実行します。これで良いかと思っていたのですが、またエラーが出ました。。


# yum list updates
読み込んだプラグイン:fastestmirror, security
Determining fastest mirrors
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/centos-sclo-rh/mirrorlist.txt
エラー: Cannot find a valid baseurl for repo: centos-sclo-rh

先ほどと違うのは「Cannot find a valid baseurl for repo: centos-sclo-rh」とのこと。/etc/yum.repos.d 配下を見ると他にもリポジトリのファイルがありました。


# cd /etc/yum.repos.d
# ll
合計 44
-rw-r--r--  1 root root 1991  6月 26 23:52 2018 CentOS-Base.repo
-rw-r--r--  1 root root  647  6月 26 23:52 2018 CentOS-Debuginfo.repo
-rw-r--r--  1 root root  630  6月 26 23:52 2018 CentOS-Media.repo
-rw-r--r--  1 root root  971 10月 29 18:21 2018 CentOS-SCLo-scl-rh.repo
-rw-r--r--  1 root root  998 12月 12 00:52 2018 CentOS-SCLo-scl.repo
-rw-r--r--  1 root root 8854  6月 26 23:52 2018 CentOS-Vault.repo
-rw-r--r--  1 root root  289  6月 26 23:52 2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 1056 11月  5 12:52 2012 epel-testing.repo
-rw-r--r--. 1 root root  957 11月  5 12:52 2012 epel.repo

「centos-sclo-rh」で拡張子がrepoのファイルをgrepしてみます。


# grep centos-sclo-rh *repo
CentOS-SCLo-scl-rh.repo:[centos-sclo-rh]
CentOS-SCLo-scl-rh.repo:[centos-sclo-rh-testing]
CentOS-SCLo-scl-rh.repo:[centos-sclo-rh-source]
CentOS-SCLo-scl-rh.repo:[centos-sclo-rh-debuginfo]

CentOS-SCLo-scl-rh.repo ファイルも直さないといけないみたいなので修正します。


[centos-sclo-rh]
name=CentOS-6 - SCLo rh
#baseurl=http://mirror.centos.org/centos/6/sclo/$basearch/rh/
#mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=6&repo=sclo-rh ←★コメントアウトする
baseurl=http://vault.centos.org/6.10/sclo/$basearch/rh/ ←★この行を追加する
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

CentOS-SCLo-scl-rh.repo ファイルには centos-sclo-rh-testing、centos-sclo-rh-source、centos-sclo-rh-debuginfo のブロックもあるのですが、これらは関係なさそうと判断して centos-sclo-rh のブロックしか直しませんでした。

修正した後にもう一度yumコマンドを実行したら、今度は「Cannot find a valid baseurl for repo: centos-sclo-sclo」です。「centos-sclo-sclo」でrepoのファイルをgrepします。


# grep centos-sclo-sclo *repo
CentOS-SCLo-scl.repo:[centos-sclo-sclo]
CentOS-SCLo-scl.repo:[centos-sclo-sclo-testing]
CentOS-SCLo-scl.repo:[centos-sclo-sclo-source]
CentOS-SCLo-scl.repo:[centos-sclo-sclo-debuginfo]

まだ直さないといけないところがありました。CentOS-SCLo-scl.repo ファイルを以下のように修正しました。


[centos-sclo-sclo]
name=CentOS-6 - SCLo sclo
# baseurl=http://mirror.centos.org/centos/6/sclo/$basearch/sclo/
#mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=6&repo=sclo-sclo ←★コメントアウトする
baseurl=http://vault.centos.org/6.10/sclo/$basearch/sclo/ ←★この行を追加する
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

CentOS-SCLo-scl.repo ファイルの centos-sclo-sclo-testing、centos-sclo-sclo-source、centos-sclo-sclo-debuginfo のブロックはそのままです。

もう一度、yumコマンドを実行します。

# yum list updates
読み込んだプラグイン:fastestmirror, security
Determining fastest mirrors
 :
(これでやっと、yumコマンドが成功しました!)

ubuntuにCanonのスキャナドライバをインストールしてみた。

ubuntu 18.04 LTSにCanonのスキャナドライバをインストールしてプリンタからスキャンができるようにしてみました。プリンタは「PIXUS MG5730」です。Canon製品であれば、他のプリンタも同じ手順だと思います。

まず、Canonのソフトウェアダウンロードのページに行きます。

プリンターから「インクジェットプリンター」を選びます。

プリンターの種類から「インクジェット複合機」を選びます。

プリンターの機種を選びます。「PIXUS MG5730」を選びました。

OSは「Linux」を選びます。

ソフトウェアからは「ScanGear MP Ver. 3.20 for Linux」を選びます。

ubuntuの場合はdebianのほうの「HTTPダウンロード」を押下し、スキャナドライバをダウンロードします。

なお、2020/11/3時点のCanonのホームページだと動作環境は「ubuntu 15.04」となっています(ピンク枠のところ)。ubuntu 18.04 にこのドライバをインストールしてスキャンをしていますが、今のところ問題はないです。

また、インストールについての操作説明書がダウンロードできます(青枠のところ)。ここにインストール方法が書かれていて、この手順でインストールをしました。

では、実際にスキャナドライバのインストールをします。

ダウンロードしたファイルをtarコマンドで解凍します。ダウンロードしたファイルは「scangearmp2-3.20-1-deb.tar.gz」というファイル名でした。

$ tar zxvf scangearmp2-3.20-1-deb.tar.gz

解凍すると「scangearmp2-3.20-1-deb」というフォルダがカレントディレクトリにできるので移動します。

$ cd scangearmp2-3.20-1-deb

「install.sh」があるのでsudoコマンドでこれを実行します。

$ sudo ./install.sh

インストールが行われます。しかし、、パッケージ libpango1.0-0 がないとうことでエラーになってしまいました。

そのため、libpango1.0-0 をインストールします。

$ sudo apt install libpango1.0-0

libpango1.0-0 が入りましたので、改めて install.sh を実行します。

スキャナドライバのインストールができたようです。

実際にプリンタでスキャンをしてみます。プリンタの電源を入れてプリンタの原稿台ガラスに原稿をセットします。ターミナルソフトのコマンドラインから以下を入力します。

$ scangearmp2

そうすると「スキャナーの選択」のダイアログが出るはずなのですが、使用できるスキャナーが見つからない旨のメッセージが出ました。初回はこのようになるのかもしれません。ちなみにプリンタとubuntuは無線LAN経由で繋げています。

とりあえず「OK」を押下すると「スキャナーの選択」のダイアログが出たので「スキャナーリストを更新」を押下します。

プリンタが検出されたようです。「OK」を押下します。

スキャンに関する設定項目が表示されます。「スキャン(JPEG)」もしくは「スキャン(PDF)」のどちらかを押下します。

保存先を指定するダイアログが出るので任意の場所を選び、ファイル名を指定します。「保存」ボタンを押下するとスキャンされた画像が選んだ場所に保存されます。

なお、ターミナルソフトで scangearmp2 のコマンドを打つとダイアログ画面が表示されるのですが、その裏で「Failed to load module “canberra-gtk-module”」のメッセージが表示されていました。

このエラーメッセージが表示されていてもスキャン自体は問題なくできますが気持ちが悪いので対応しておきます。

「dpkg -l | grep libcanberra」でインストールされているパッケージを確認してみたところ、以下が入っていました。

・libcanberra-gtk3-0:amd64
・libcanberra-gtk3-module:amd64
・libcanberra-pulse:amd64
・libcanberra0:amd64

libcanberra-gtk-module は上記のものとは違うようなので、このパッケージをインストールします。

$ sudo apt install libcanberra-gtk-module

再度、scangearmp2 のコマンドを打つと「Failed to load module “canberra-gtk-module”」のメッセージは出なくなりました。