openSUSE 12.3 へのアップデート [openSUSE]
アップデート自体は、通常の live upgrade の手順で特に問題なく終了したが、アップデート後にいくつかの問題が発生したため、必要な対応を行った。
詳細は、以下の通りである。
1. Xorg のパーミションが原因で X Window System が起動できない。
(補足)
openSUSE 12.2 でも同様の事象が発生する。
(1) Xorg のパーミションの変更(setuid の設定)
# chmod 4755 /usr/bin/Xorg # ls -l /usr/bin/Xorg -rwsr-xr-x 1 root root 2222080 Jul 15 21:30 /usr/bin/Xorg
2. shutdown 時に /etc/init.d/halt.local が参照されない。
(1) /usr/lib/systemd/system/halt-local.service の編集
# diff halt-local.service halt-local.service.org 21,23d20 < < [Install] < WantedBy=shutdown.target
(2) halt-local.service の有効化
# systemctl enable halt-local.service (下記のシンボリックリンクが作成される。) ln -s '/usr/lib/systemd/system/halt-local.service' \ '/etc/systemd/system/shutdown.target.wants/halt-local.service'
3. fvwm2 が異常終了する。
(補足)
下記の手順により、fvwm2 が異常終了する。
(openSUSE 12.2 でも同様の問題が発生する。)
(a) Firefox を起動する。
(b) google で JavaScript を検索する。
(c) 検索結果の一番目にある JavaScript - Wikipedia にアクセスする。
( http://ja.wikipedia.org/wiki/JavaScript )
(d) Firefox の [前ページに戻る] アイコンをクリックする。
(1) fvwm2 を openSUSE 12.1 のパッケージに入れ替える。
# rpm --oldpackage -Uvh fvwm2-2.5.26-59.1.3.i586.rpm
4. fvwm2 において、マウスクリックによるルートメニューの表示ができない。
(補足)
ルートウィンドウでのマウスクリックによるメニューの表示ができない。
(Debian GNU/Linux 7.1 でも同様の事象が発生する。)
(1) SCIM 関連のパッケージの入れ替え(openSUSE 12.2 のパッケージを使用)
[変更前のパッケージ] mlterm-scim-3.1.6-2.1.2.i586 scim-1.4.14-3.2.1.i586 scim-anthy-1.2.7-20.1.1.i586 scim-bridge-0.4.16-140.1.1.i586 scim-bridge-gtk-0.4.16-140.1.1.i586 scim-m17n-0.2.2-249.1.1.i586 [変更後のパッケージ] mlterm-scim-3.0.8-4.1.2.i586 scim-1.4.13-3.1.2.i586 scim-anthy-1.2.7-17.1.2.i586 scim-bridge-0.4.16-137.1.2.i586 scim-bridge-gtk-0.4.16-137.1.2.i586 scim-m17n-0.2.2-247.1.2.i586
5. lm_sensors.service の起動に失敗する。
(補足)
/var/log/warn に下記のメッセージが出力される。
systemd[1]: lm_sensors.service failed to run 'start' task: \
No such file or directory
(1) パッケージ(sensors-3.3.3-2.5.1.i586) の再インストール
# rpm -e sensors-3.3.3-2.5.1.i586 # zypper install sensors
6. GNOME (fallback モード)のパネルにミキサーが表示されない。
(1) ~/.pulse の再作成
(a) ~/.pulse を ~/.pulse.sav に mv する。
(b) GNOME を再起動する。
(c) ~/.pulse.sav を ~/.pulse に mv する。
または、~/.pulse を再作成する。
(d) GNOME を再起動する。
7. getty のプロンプトがブートの途中で出力されてしまう。
(補足)
openSUSE 12.2 でも同様の事象が発生する。
(1) /etc/systemd/system/getty@.service の作成
cf. https://bbs.archlinux.org/viewtopic.php?id=147808
# cat /etc/systemd/system/getty@.service .include /usr/lib/systemd/system/getty@.service [Service] ExecStartPre=-/bin/kill -55 1
xscreensaverのパスワード入力欄に何も表示されない [openSUSE]
openSUSE 12.2 の xscreensaver-5.15-2.2.2.i586 において、パスワードの入力時に入力欄に何も表示されず、入力が検知されたのかどうかが判断できない。
2. 原因
/usr/share/X11/app-defaults/XScreenSaver の設定によるものである。
( cf. https://bbs.archlinux.org/viewtopic.php?id=96573 )
*passwd.asterisks: False
3. 対処方法
~/.Xresources に下記の設定を追加する。
xscreensaver.*passwd.asterisks: True
GNOME 3のメニューに追加した項目を削除できないことがある [openSUSE]
GNOME 3 (強制フォールバックモードで使用) のメイン・メニューに追加した項目を削除できないことがある。
openSUSE 12.2 において、alacarte で下記の手順を実施した時に発生する。
必ず発生するというわけではない。
また、使用した alacarte のバージョンは、下記の通りである。
・alacarte-0.13.4-2.4.1.i586
・alacarte-lang-0.13.4-2.4.1.noarch
(1) alacarte の起動
[アプリケーション] -> [その他] -> [メイン・メニュー] を選択する。
(2) メイン・メニューへのメニュー項目の追加
メイン・メニューの [その他] に新しいメニュー(test) を追加する。
・メニュー欄の [その他] 内に [test] が表示される。
・メニュー欄の [その他] の選択時に、アイテム欄に [test] が表示されない。
・実際のメニューには、[test] は表示されない。
(3) 上記 (2) で追加したメニュー項目の削除
上記で作成した [test] を alacarte 上の操作で削除できない。
2. 対処方法
下記の設定ファイルを編集する。
バックアップが存在する場合には、バックアップしたものに置き換える。
(1) メニューの表示方法の設定
~/.config/menus/gnome-applications.menu
・<Menu> 〜 </Menu> の入れ子となっている。
・</Menu> の直前への <Deleted/> の追加により、該当する項目を無効化できる。
(2) メニュー項目の定義
~/.local/share/desktop-directories/alacarte-made.directory
および
~/.local/share/desktop-directories/alacarte-made-*.directory
(3) アイテム項目の定義
~/.local/share/applications/alacarte-made-*.desktop
Emacs 23.3.1のdiff-modeでのキーバインドの変更 [openSUSE]
(define-key esc-map "g" 'goto-line)
しかし、Emacs 23.3.1 の diff-mode では、M-g が revert-buffer にキーバインドされており、上記の設定が機能しない。(*.diff ファイルを読み込むと、diff モードとなる。)
これまでと同様に使用したいため、~/.emacs に下記の設定を追加した。
;; change key binding of diff mode (when (not (string< emacs-version "23.3.1")) (add-hook 'diff-mode-hook '(lambda () (define-key diff-mode-map "\eg" nil) (define-key diff-mode-map "\eG" 'revert-buffer)) t))
/usr/bin/Xorgのファイル・パーミションの変更 [openSUSE]
なお、基本的な手順は openSUSE のバージョンに依存しないと思われるが、実際に使用したのは openSUSE 12.2 である。
1. /etc/permissions.local の編集
下記の設定を追加する。
/usr/bin/Xorg root:root 4755
2. /etc/permissions.local の編集内容の反映
下記のコマンドを実行する。
# chkstat --system
3. 備考
/etc/permissions.local が参照されるためには、/etc/sysconfig/security の PERMISSION_SECURITY の設定値に "local" が含まれていることが必要である。
(詳細は、/etc/permissions のコメントを参照。)
不要なパッケージの検索 [openSUSE]
これまでは、各パッケージの説明文から不要かどうかを判断し、不要なパッケージをアン・イストールするという手順を実施してきた。しかし、結構面倒な作業なので、何か手軽なツールがないかと探していたところ、rpmorphan というツールあることが分かった。
以下は、rpmorphan (on openSUSE 12.2) に関する記述である。
1. rpmorphan
rpmorphan はフリーのオープンソースユーティリティで、不要になった(orphaned) パッケージを検索するものである。
rpmorphan はシステムに導入されたパッケージから、他のパッケージと依存していないものを識別し、それをリストアップする。また、リストアップしたパッケージの詳細情報の表示、パッケージの削除を行うことも可能である。
2. パッケージのインストール
# zypper install rpmorphan … The following NEW packages are going to be installed: perl-Tk rpmorphan The following recommended package was automatically selected: perl-Tk …
3. 不要なパッケージの検索
# grpmorphan または # rpmorphan
4. 不要なパッケージの削除
削除するパッケージについて、grpmorphan の GUI からパッケージの削除を実施、または rpm によるパッケージのアン・インストールを実行する。
5. 備考
(1) 注意
検索結果として得られるのは不要なパッケージの候補であり、不要かどうかの判断は実行者の判断による。
また、パッケージ間に依存関係がない場合でも、あるパッケージの削除により、他のパッケージの動作に異常を発生することがある。
よって、アン・イストールしたパッケージを記録しておいた方が懸命である。
(例)
不要なパッケージのアン・イストールの前後で、パッケージの一覧を作成する。
(パッケージの一覧は、'rpm -qa | sort' の実行により得られる。)
(2) rpmorphan のアン・インストール
perl-Tk および rpmorphan をアン・インストールする。
agettyの"Hint: Num Lock off"を表示しないための設定 [openSUSE]
以下は、このメッセージを出力しないための設定方法に関するものである。
1. openSUSE 12.2 の場合
agetty の実行時に --nohints オプションを指定する。
例えば、下記のような設定を行う。
(1) /etc/systemd/system/getty@.service の作成
# /etc/systemd/system # cp -p /lib/systemd/system/getty\@.service .
(2) /etc/systemd/system/getty@.service の編集
# diff getty\@.service /lib/systemd/system 20c20 < ExecStart=-/sbin/agetty --nohints %I 38400 --- > ExecStart=-/sbin/agetty %I 38400 41,45d40 < Alias=getty.target.wants/getty@tty2.service < Alias=getty.target.wants/getty@tty3.service < Alias=getty.target.wants/getty@tty4.service < Alias=getty.target.wants/getty@tty5.service < Alias=getty.target.wants/getty@tty6.service --- > Alias=getty.target.wants/getty@tty1.service
(3) /etc/systemd/system/getty.target.wants/ の編集
# ln -s ../getty@.service getty@tty1.service # ln -s ../getty@.service getty@tty2.service # ln -s ../getty@.service getty@tty3.service # ln -s ../getty@.service getty@tty4.service # ln -s ../getty@.service getty@tty5.service # ln -s ../getty@.service getty@tty6.service
2. openSUSE 12.1 の場合
openSUSE 12.1 の agetty には、--nohints オプションが存在しない。
よって、本質的な対応ではないが、NumLock を on にすることにより上記の出力を抑制する。
(1) /etc/init.d/boot.local に下記の設定を追加する。
# set NumLock for tty in /dev/tty[1-6]*; do setleds -D +num < $tty done unset tty
GTK+の警告音の無効化 [openSUSE]
下記のメッセージが表示される時に、警告音(ビープ音ではなく効果音)が鳴る。
Firefox は起動していますが応答しません。 新しいウィンドウを開くにはまず既存の Firefox プロセスを終了させるか、 コンピュータを再起動させなければなりません。
以降は、上記の警告音を無効化する手順をまとめたものである。
1. GNOME の場合
・パネルの音量調整のアイコンを右クリックし、[サウンドの設定] を選択する。
(gnome-control-center sound が実行される。)
・[音響効果] タブを選択する。
・[警告音の音量] の [ミュート] を選択する。
[ミュート] を選択しないと、音量が 0 でも上記の事象が発生する。
2. fvwm2 の場合
GTK+ の設定ファイルに下記の設定を追加する。
## disable to event sounds gtk-enable-event-sounds = 0 gtk-enable-input-feedback-sounds = 0
・gtk-enable-event-sounds = 0 の追加のみでも無効化できる。
・GTK+2 の場合
~/.gtkrc-2.0 に上記の設定を追加する。
・GTK+3 の場合
~/.config/gtk-3.0/settings.ini に上記の設定を追加する。
openSUSE 12.2へのアップデート(2) [openSUSE]
(1) ブート直後に getty のプロンプトが表示されない件への対応
【対処方法】
/etc/init.d/boot.local の最後に下記の設定を追加する。
# patch for getty@tty1.service (on openSUSE 12.2) (sleep 3; systemctl restart getty@tty1.service >/dev/null 2>&1) &
openSUSE 12.2へのアップデート [openSUSE]
正確には、openSUSE 12.1 の環境を複製し、複製したものを 12.2 にアップデートした。
アップデート自体は、これまで使用してきた live upgrade の手順で、特に問題なく終了した。
しかし、openSUSE 12.1 の設定では正常に動作しないものがあり、いくつか設定を変更した。
openSUSE 11.4 から 12.1 へのアップデートの場合よりも多くの変更が必要となった。
詳細は、以下の通りである。
1. ブート直後に getty のプロンプトが表示されない。
【ソフトウェアのバージョン】
systemd-44-10.1.1.i586
【発生事象の補足情報】
Enter キーを押下しなければ、プロンプトが表示されない。
openSUSE 12.1 でも同様の事象が発生したが、この時行った対応方法では改善されなかった。
(openSUSE 12.1 では、/etc/init.d/boot.local の最後に sleep 5 を追加することで対応。)
2. ブート直後に md が 異常な状態となることがある。
【ソフトウェアのバージョン】
・mdadm-3.2.5-3.7.1.i586
・systemd-44-10.1.1.i586
【対処方法】
openSUSE 12.1 でも発生した事象であり、同様の対応方法で改善された。
(openSUSE 12.1 では、mdadm を openSUSE 11.4 のパッケージに入れ替えることで対応。)
3. Xorg の起動後にマウスが動作しない。
【ソフトウェアのバージョン】
xorg-x11-server-7.6_1.12.3-1.2.3.i586
【発生事象の補足情報】
X の設定は、以前のパージョンで自動生成されたものを更新して使用している。
また、openSUSE 12.1 で正常に動作していたものである。
【対処方法】
/etc/X11/xorg.conf の下記の設定を削除(またはコメント化)する。
Section "InputDevice" ... Option "Name" "ImExPS/2 Generic Explorer Mouse" <--- この部分 ... EndSection
4. Xorg が異常終了することがある。
【ソフトウェアのバージョン】
xorg-x11-7.6_1-3.2.1.noarch
【発生事象の補足情報】
Firefox での Web ブラウジング中に X が突然終了してしまうことが数度発生した。
現時点では、原因、および対象方法は不明である。
5. 他のノードからの ftp ができない。
【ソフトウェアのバージョン】
・vsftpd-3.0.0-3.1.3.i586
・xinetd-2.3.14-160.1.3.i586
【発生事象の補足情報】
% ftp beta Connected to beta (192.168.0.12). 500 OOPS: could not bind listening IPv4 socket ftp> quit
【対処方法】
/etc/vsftpd.conf に下記の設定を追加する。
listen=NO
man vspftd.conf では、デフォルト値は NO と表示されるが、デフォルト値が YES のような挙動である。
6. 他のノードからの rcp ができない
【ソフトウェアのバージョン】
・rsh-server-0.17-722.1.2.i586
・xinetd-2.3.14-160.1.3.i586
・systemd-44-10.1.1.i586
【発生事象の補足情報】
% rcp -p A.log beta:/tmp rcp: lost connection
rsh は問題なく動作する。
【対処方法】
/etc/pam.d/common-session-pc の 編集
(変更前) session optional pam_systemd.so (変更後) #session optional pam_systemd.so
【補足】
/etc/pam.d/common-session の pam_systemd.so により、セッションを終了させられる。
・/etc/pam.d/rsh で common-session を参照するように設定されている。
・common-session は、common-session-pc へのシンボリックリンクである。
・/lib/security/pam_systemd.so は、systemd パッケージで提供される。
7. ログイン成功時に Last login 情報が 2 個表示される。
【発生事象の補足情報】
% rsh beta Last login: Sun Sep 9 19:47:07 JST 2012 on tty1 ... (a) No mail. Last login: Sun Sep 9 19:54:04 from beta.private.net ... (b)
【対処方法】
・/etc/pam.d/login の pam_lastlog.so の使用を止める(コメント化する)。
・/etc/pam.d/remote の pam_lastlog.so の使用を止める(コメント化する)。
8. 備考
当方の環境では、openSUSE 12.1 の方が動作が安定している。
よって、当面 openSUSE 12.2 は使用せず、情報の収集を行おうと考えている。