Fedora 15へアップグレード時のトラブル



●Fedora 15のフォントが大きい

 デフォルトで設定されているフォントが大きすぎて見にくい。以下のツールをインストールして対応します。
# yum install gnome-tweak-tool
  これで[アプリケーション]-[アクセサリ]-[高度な設定のカスタマイズ]が追加されます。

●旧来のGNOMEユーザインターフェースを使用する(フォールバックモード)

 GNOME Shellの設定はgnome-tweak-toolパッケージを入れることでテーマやフォントを変更できます。"システムの設定"の"システム情報"にある"グラフィック"の設定で強制フォールバックモードを有効にし、再ログインすることでGNOME Shellではなく、旧来のGNOMEのUIが使えるようになります。

●crondが自動起動しない

 OS起動後、手動で起動することは出来る。
 いろいろ調べると、下記のようにすれば自動起動することが分かりました。
# systemctl enable crond.service
ln -s '/lib/systemd/system/crond.service' '/etc/systemd/system/multi-user.target.wants/crond.service'
 crond.serviceへのリンクがなかったのが原因のようです。

●一部のサービスがchkconfigで確認及び自動起動の設定ができない

 dovecotをインストールしたのですが、サービスがchkconfigで確認できませんでした。
 ただし、下記のように手動でサービスを起動すると問題なく動作を開始します。
# service dovecot start
Starting dovecot (via systemctl):                          [  OK  ]
 実際にchkconfigを実行してみると下記のように表示されます。
# chkconfig --list dovecot
Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.
 GUIモードの起動時に参照する/etc/rc.d/rc5.d/を確認すると、dovecotの正常インストールにもかかわらず(yum info dovecotで確認できます。)下記のとおり起動スクリプトが存在しません。
# ls /etc/rc.d/rc5.d/
K01smolt              K69rpcsvcgssd          S01sandbox       S25netfs
K10psacct             K74ntpd                S02lvm2-monitor  S26acpid
K10saslauthd          K74ypbind              S08ip6tables     S27pcscd
K20tomcat6            K75ntpdate             S08iptables      S55sshd
K24irda               K76openvpn             S11auditd        S56xinetd
K30mysql-proxy        K84btseed              S11portreserve   S64postgresql
K35dovecot            K84bttrack             S13cpuspeed      S75heartbeat
K36mysql-mmm-agent    K84wpa_supplicant      S13rpcbind       S80sendmail
K36mysql-mmm-monitor  K86cgred               S14nfslock       S80xymon-client
K36mysqld             K87multipathd          S15mdmonitor     S82abrt-ccpp
K50dnsmasq            K87speech-dispatcherd  S18rpcidmapd     S82abrt-oops
K50netconsole         K89rdisc               S19rpcgssd       S85httpd
K50snmpd              K90network             S22messagebus    S91vncserver
K50snmptrapd          K95cgconfig            S24avahi-daemon  S95atd
K60nfs                K95firstboot           S25cups          S99rc-local
 これは、Fedora 15からいくつかのサービスが、例えばntpdやdhcpdはchkconfigではなくSystemdサービスでのの管理下に入っていて、/etc/rc.d/init.d配下に起動スクリプトは配置されず、こちらでコントロールすることになったようです。systemctlコマンドを使用することにより/lib/systemd/system配下に設定ファイルが配置され、/etc/systemd/system配下のxxx.wants配下にリンクが張られることで自動起動設定となります。
 これまでのSysVサービスは、今までとおり/etc/rc.d/init.d配下に起動スクリプトが配置され、chkconfigコマンドで自動起動設定をコントロールするには下記のように設定します。
# systemctl enable dovecot.service
ln -s '/lib/systemd/system/dovecot.service' '/etc/systemd/system/multi-user.target.wants/dovecot.service'
# ls /etc/systemd/system/multi-user.target.wants/
NetworkManager.service  atd.service           dovecot.service     ntpd.service
abrtd.service           avahi-daemon.service  irqbalance.service  remote-fs.target
acpid.service           crond.service         mcelog.service      rsyslog.service
 dovecot.serviceが追加されていることが確認できます。
 しかし、Fedora 15ではsystemctlコマンドの利用が推奨されています。
 SysVnitから使われる「/etc/init.d」や「/etc/rc.d」ディレクトリ以下にあるサーバ管理用スクリプトを参照する「ntsysv」「chkconfig」「service」というような従来の管理コマンドは今後の開発次第では利用出来なくなる可能性があります。
 以下にsystemctlコマンドでの自動起動を設定、自動起動設定の解除、サービスの起動、サービスの停止等の使用方法を示します。
・サービスを自動起動設定する(例としてdovecot)
# systemctl enable dovecot.service
ln -s '/lib/systemd/system/dovecot.service' '/etc/systemd/system/multi-user.target.wants/dovecot.service'
・サービスの自動起動設定を解除する(例としてdovecot)
# systemctl disable dovecot.service
ln -s '/lib/systemd/system/dovecot.service' '/etc/systemd/system/multi-user.target.wants/dovecot.service'
・サービスを起動する(例としてdovecot)
# systemctl start dovecot.service
#(応答は何もありません。)
・サービスを停止する(例としてdovecot)
# systemctl stop dovecot.service
#(応答は何もありません。)
・サービスをリロードする(例としてdovecot)
# systemctl reload dovecot.service
Failed to issue method call: Job type reload is not applicable for unit dovecot.service.
・サービスを再起動する(例としてdovecot)
# systemctl restart dovecot.service
#(応答は何もありません。)
・サービスのステータスを確認する(例としてdovecot)
# systemctl status dovecot.service
	  Loaded: loaded (/lib/systemd/system/dovecot.service)
	  Active: active (running) since Wed, 14 Sep 2011 02:12:23 +0900; 12s ago
	Main PID: 27905 (dovecot)
	  CGroup: name=systemd:/system/dovecot.service
		  ├ 27905 /usr/sbin/dovecot -F
		  ├ 27906 dovecot/anvil
		  ├ 27907 dovecot/log
		  └ 27909 dovecot/config
・システムのサービスユニットを確認する
# systemctl -at service
 その他にもオプションが多数ありますのでmanで確認してください。
 systemdでは、ランレベルに相当するシステム動作モードの設定をターゲットユニット(.targetが付加しているファイル)に記述します。Fedora 15で利用できるターゲットユニットは下記のとおりです。

ターゲットユニット名 説明
poweroff.target ランレベル0に相当。シャットダウン動作を示します。
rescue.target ランレベル1に相当。シングルユーザモードを示します。
multi-user.target ランレベル2~4に相当。マルチユーザモード(非グラフィカル)を示します。
graphical.target ランレベル5に相当。グラフィカルモードを示します。
poweroff.target ランレベル6に相当。システムの再起動を示します。

 例えば、システムの標準ランレベルを設定する場合は下記のようにします。
# ln -s '/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target'

●Gnome Shellのカスタマイズ

 Fedora 15になってからデスクトップ等テーマの変更方法が分かりませんでした。一部変更することができるようになりましたので記載します。

 Gnome Shellテーマのインストール

 デフォルトでは他のテーマが入っていませんので、下記のコマンドでインストールします。
# yum install gnome-shell-extension-theme-selector

依存性を解決しました

========================================================================================================================
パッケージ アーキテクチャ
バージョン リポジトリー 容量
========================================================================================================================
インストールしています:
gnome-shell-extension-theme-selector noarch 0.9-3.fc15 updates 623 k
依存性関連でのインストールをします。:
gnome-shell-extension-common noarch 3.0.2-3.20110630git939994d0.fc15 updates 22 k
gnome-shell-extension-user-theme noarch 3.0.2-3.20110630git939994d0.fc15 updates 7.3 k


 テーマのインストール先をセットアップ

 ホームディレクトリ内にテーマを格納するための準備をするコマンドを実行します(実行しても見た目上は何も変化はありません)。
$ theme-selector-setup

 GnomeShellの再起動

 以上でテーマの導入は終了です。GnomeShellを再起動してみましょう。「ALTキー+F2キー」を押すとコマンドの入力欄が表示されるので、「r」を入力しEnterキーを押せばGnomeShellが再起動します。

 テーマの選択

 デスクトップの左上にある「アクティビティ」をクリックすると、「ウィンドウ」「アプリケーション」の右側に「Themes」というボタンが加わっていますので、これをクリックしすれば好きなものを選択できます。もし、表示されるテーマが一つしかない場合は下記を実行してください。
# yum -y install gnome-shell-theme*
 選択できるテーマが増えているはずです。

 Gnome Tweak Toolの導入

 Fedora15のリポジトリには、Gnome Tweak Toolというカスタマイズツールがあります。これを使ってテーマを変更することもできます。ただし、これだけだと、上記のようなテーマが選べないので、上の手順を終えてから導入したほうがいいでしょう。
$ sudo yum install gnome-tweak-tool

 Gnome Tweak Toolの使い方

 Gnome Tweak Toolを起動するには、一般ユーザで次のコマンドを実行するか、「アプリケーション」-「アクセサリ」-「高度な設定のカスタマイズ」をクリックします。
$ gnome-tweak-tool
gnome-tweak-tool-0
 デスクトップで使用されるフォントの種類や大きさを変更します。Text scaling factorでフォントの大きさを変更できますが、数値を少し弄っただけで大きく変わりますので注意が必要です。

gnome-tweak-tool-1

 デスクトップのテーマを変更します。Shell themeのところで好きなテーマを選んでください。

gnome-tweak-tool-2

 ウィンドウ枠のテーマを変更します。Current themeのところで好きなテーマを選びます。従来のデフォルトテーマClearlooksもあります。

gnome-tweak-tool-3

 デスクトップ上にアイコンを置いたり右クリックメニューを表示できるようにします(デスクトップのアクティブ化)。アクティブ化するには、Have file manager handle the desktopがOFFになっているので、スライダーをドラッグしてONにします。
 最後の「デスクトップのアクティブ化」ですが、ログインし直すと無効になってしまうようです。その場合は、アクティビティでフォルダ(どこでもいいです)を開くと、有効になります。.bashrcあたりでNautilusを自動起動させれば何とかなりそうな気はしますけど、どうなんでしょう。

●Fedora 15でデスクトップ上にアイコンを置きたい

 Gnome Tweak ToolによりFedora 15のデスクトップにアイコンを配置することできるようになります。インストール方法についてはGnome Tweak Toolの導入を参照してください。

Tweak-Tool(FileManager)

 「アプリケーション」-「アクセサリ」-「高度な設定のカスタマイズ」をクリックします。「File Manager」を選択し、Have file manager handle the desktopがOFFになっているので、スライダーをドラッグしてONにします。これによりデスクトップ上にアイコンを置いたり右クリックメニューを表示できるようにします(デスクトップのアクティブ化)。
 アプリケーションにあるメニューからドラッグアンドドロップすれば簡単に配置できます。この時、メニューからは削除されませんので安心してください。

●dbus-daemonのエラーについて

 下記のようなエラーが表示されるようになってしまいました。
Sep 23 08:51:32 inu dbus-daemon: [system] Activation via systemd failed for unit 'dbus-org.freedesktop.NetworkManager.service': Unit dbus-org.freedesktop.NetworkManager.service failed to load: No such file or directory. See system logs and 'systemctl status dbus-org.freedesktop.NetworkManager.service' for details.
 下記のような対策を実施しました。

# systemctl status dbus-org.freedesktop.NetworkManager.service
dbus-org.freedesktop.NetworkManager.service
Loaded: error
Active: inactive (dead)
# systemctl enable dbus-org.freedesktop.NetworkManager.service
Couldn't find dbus-org.freedesktop.NetworkManager.service.
# systemctl status NetworkManager.service
NetworkManager.service - Network Manager
Loaded: loaded (/lib/systemd/system/NetworkManager.service)
Active: inactive (dead)
CGroup: name=systemd:/system/NetworkManager.service
# systemctl enable NetworkManager.service
ln -s '/lib/systemd/system/NetworkManager.service' '/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service'
ln -s '/lib/systemd/system/NetworkManager.service' '/etc/systemd/system/multi-user.target.wants/NetworkManager.service'
# systemctl start NetworkManager.service
# systemctl status NetworkManager.service
NetworkManager.service - Network Manager
Loaded: loaded (/lib/systemd/system/NetworkManager.service)
Active: active (running) since Fri, 23 Sep 2011 09:05:40 +0900; 6s ago Main PID: 18148 (NetworkManager)
CGroup: name=systemd:/system/NetworkManager.service
└ 18148 /usr/sbin/NetworkManager --no-daemon

 これによりエラーが表示されることはなくなりました。

●通信端点が接続されていません

 findコマンドを実行したら下記のようなエラーが表示されました。
find: `/root/.gvfs': 通信端点が接続されていません
 mountコマンドで調べてみると、以下のように表示されました。
# mount
gvfs-fuse-daemon on /root/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
# ls -asl
ls: .gvfs にアクセスできません: 通信端点が接続されていません
 ? d??????????  ? ?    ?        ?             ? .gvfs
 マウントしている状態だと削除できなかったので、アンマウントします。
# /bin/fusermount -zu "$HOME/.gvfs"
 その後、該当ディレクトリを削除したら解消されました。
# rm -rf "$HOME/.gvfs"

●error: C++ preprocessor "/lib/cpp" fails sanity check

 Tomcat Connectorsをcconfigureしたら下記のようなエラーが表示されました。
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
See `config.log' for more details.
 gccのC++コンパイラがインストールされていなかったようです。
# yum -y install gcc-c++
 上記により、問題は解消しました。