/etc/profile.d/SDL_pulseaudio_hack.sh:3: no matches found: /usr/lib*/alsa-lib/libasound_module_pcm_pulse.so先日の SDL-1.2.12-5.fc8(1.2.12-4かもしれない)へのアップデートで、起動スクリプトが追加されたらしい。該当ファイルをチェック
$ cat /etc/profile.d/SDL_pulseaudio_hack.sh私の Fedora8 は alsa-plugins-pulseaudio を削除してあって libasound_module_pcm_pulse.so は存在しません。なるほど、「*」がマッチしない時の挙動に問題があるわけですな。以前から zsh のエラー表示は腑に落ちないと思っていたんですよ。
[ -e /usr/lib*/alsa-lib/libasound_module_pcm_pulse.so ] && export SDL_AUDIODRIVER=esd
$ ls *.hoge 2> /dev/nullこのように標準エラー出力を /dev/null に送ったら、何も表示されないのが普通のはず。ところが zsh では
検索したら glob がマッチしない時の動作[おもてなしの空間] に分かりやすく仕様が書いてありました。/etc/zshenv に
setopt nonomatchと書いて解決。こういう設定は zshrc にする方が相応しいかと思いますが、それだとログインシェルの時に同じエラーが表示されるんだよね(zshrc の前に /etc/zprofile ⇒ /etc/profile ⇒ /etc/profile.d/*.sh)
≪追記≫
そういえば bash でも x86_64 環境で
/usr/lib/.../libasound_module_pcm_pulse.so
と
/usr/lib64/.../libasound_module_pcm_pulse.so
があると
bash: [: too many argumentsとエラーが出るはず。この書き方はよろしくない
07:46 pm | コメントする |