Server@VPSでyum updateを叩くスクリプト
概要
DTIのServer@VPSで、OSをCentOS 7を使用している場合に、「yum update」を叩くと以下のエラーになります。
Error: systemd conflicts with initscripts-9.49.17-1.el7.x86_64
「initscripts」の不具合の関係でupdateが出来ない状態です。DTIに問い合わせましたが改善の見込もないみたいです。
自分が使用しいるパッケージだけアップデートすればセキュリティ上は問題が無いかも知れませんが、使っていないパッケージも「yum update」で一括でアップデートしたいと思い簡単なスクリプトを作りました。よければになれば使って下さい
再起動したら外部からアクセスできなくなる不具合があるので、/etc/yum.conf に「exclude=initscripts*」を追記はおこなって下さい。
また、このHPで記載した「initscripts」関係の記事のリンクも掲載しています
【initscriptsの不具合の関係の記事】
- yum updateでエラー「Error: systemd conflicts with initscripts」
- ServersMan@VPS initscriptsの不具合で再起動すると外部からのアクセス不可
DTIのServer@VPSでの、yum updae用スクリプト
スクリプトの内容ですが、yum updateで一旦、アップデート対象を取得しパッケージ名してテキストファイルに吐き出しています。そのファイルを読み込んでyum updateを叩いていてます。
処理は2回に別けて作ってますが、1回できると思います
yum updateのパッケージ名を取得するスクリプト
1個のコマンドを叩いているだけなので、スクリプトで記述するまでも無いですが、以下のスクリプトでyum update対象のパッケージ名のみを取得しています
#!/bin/sh FILE_DIR=/var/tmp/ yum update | grep Package | cut -f3 -d " " | cut -f1 -d "." | uniq > ${FILE_DIR}yum_update_list
上記のスクリプトを実行すると以下のようなパッケージ名のみが抜き出されたファイルが生成されます
$ cat /var/tmp/yum_update_list acl avahi bind curl file gcc
yum updateを実行するスクリプト
上記を実行後に以下のスクリプトを実行して、yum updateを実行します。スクリプトを実行すると「initscripts」の関係でエラーなるパッケージもあります。
#!/bin/sh FILE_DIR=/var/tmp/ while read LIST; do yum -y update $LIST done < ${FILE_DIR}yum_update_list
一個にまとめた場合の、Server@VPS用yum updateスクリプト
自分の場合は、updateされる前にエラーになるパッケージをupdate対象リストのファイルから削除したかったので2個に分けましたが、1個のパターンのスクリプトは以下となります
#!/bin/sh FILE_DIR=/var/tmp/ # update対象のパッケージ名のファイル生成 yum update | grep Package | cut -f3 -d " " | cut -f1 -d "." | uniq > ${FILE_DIR}yum_update_list # update対象のリストを読み込んで、yum updateを実行 FILE_DIR=/var/tmp/ while read LIST; do yum -y update $LIST done < ${FILE_DIR}yum_update_list
アップデートでエラーになるパッケージ
今の段階で、yum updateを実行するとエラーとなるパッケージ名は以下のようなパッケージです
cyrus-sasl
cyrus-sasl-lib
kmod
kmod-libs
libblkid
libmount
libuuid
procps-ng
rpcbind
rsyslog
systemd
systemd-libs
systemd-sysv
util-linux
dracut
hardlink
kpartx
ディスカッション
コメント一覧
まだ、コメントがありません