UNIXを本格的に勉強しはじめてそろそろ3年になろうとしています。体験記は基本的に時間の経過とともに書いていますが、手っ取り早く問題とその解決法を知りたい方のためにこのページにまとめました。もとのページへリンクできるようになってますから、詳細がご覧になりたい方はつついてみてください。
ですからしょーもない質問は思い切り笑ってやってください。でも同じことをやってて笑えないヒトもいるかもしれない?!
001 Linuxを私のコンピュータに自動インストールしたら、モニタから画像がはみ出ています。どうして?!
002 初めてLinuxを起動してみましたがアイコンしかありません。コマンドとかいうのはどこで打てばいいの?
003 あの3comのネットワークボードなのにLinuxでネットワークに接続できない。Windowsではできるのに〜
004 インストーラはちゃんとグラフィックボードを認識してくれたはずなのにXがうまく動かない
005 05 C++のソースコードをgccでコンパイルしようとしましたが、ヘッダファイルが見つからないというエラーになります。どうして?
006 Linuxでコマンドを打ってエラーになると、bash!とか言われてムカつきます。
007 フリーウェアをダウンロードしたら、ナントカ.shという名前のファイルがひとつだけ落ちてきました。これからどーすりゃいいの?
008 pcmcia-csのアップグレードの時、「カーネルがありません」というエラーが出ます。
009 LinuxでネットワークPCカードを使いたいのですが、OSの起動時にDelaying eth0 initiallizationというメッセージが出て気になります。
010 Linuxで無線LANカードを使いたい。スロットに挿すと認識はされているが通信ができない。
011 Solaris8でソースをmakeしようとしたら「見つかりません」と言われます。
012 Solaris8で使ってるシェルはなにシェル?!bashでもcshでもなくただ「sh」てしか書いてないぞ!
013 Solaris8でrootのログインシェルを変えたら、rootでログインできなくなってしまいました
014 Solaris8だと、rootのホームディレクトリに環境設定ファイルが見つかりません。
015 nsswitch.confの設定が、いっぱいありすぎてわかんないヨ!
016 SolarisのSambaでユーザを追加できません。smbpasswdが見つからないと言われます。
017 Solarisでmakeコマンドをかましたら、「GNU makeでなければいけません」というエラーが出ました。
018 Solarisで、suでrootになって作業しようとしたら、コマンドサーチパスとかが全然通らなくなりました。
019 CD-ROMを入れたままSolarisをブートしてしまいました。起動の途中で画面が止まってしまいました。壊れた?!
020 Linuxではtarコマンドでカンタンに解凍できるtar.gzファイルが、Solarisだと「ディレクトリの検査合計エラー」になる。
021 「致命的なエラー:libナントカカントカ:openに失敗しました。ファイルもディレクトリもありません」と言われます。
022 Linuxではちゃんと動くアプリが、Solarisだとmakeはできてもコアダンプを起こして起動できません。
023 Linuxでは./configureで問題ないアプリが、Solarisだと./configureでエラーになります。
024 SolarisのXEmacsで日本語をサポートさせたい
025 SolarisのXEmacsでWnnを使おうとすると、「ファイルが存在しません」とか言って漢字変換できません。
026 ディスク容量不足と言われてしまいました。8GものHDD、まだそのうち2Gしか使ってないはずなのに。
027 ウィンドウとかカーソルとか文字の色が反転したときの背景とか、ピンクとか黄色とか妙にサイケな色で、きれいではあるが見にくい。
インストーラでのグラフィックの自動設定では最大の解像度が選ばれてしまいますがモニタがそこまでサポートしてない、ということがあります。
この場合、液晶モニタが1024x768までしかサポートしてなかったのです。あとから/etc/X11/XF86Configを編集して、XGAよりでかい解像度の記載を全て消してしまって再起動して、適当な大きさに戻りました。
次にインストールするときは、「Xの設定をカスタマイズ」をチェックしてモニタにあった解像度を手動で選びました。
適当なメニューやアイコンから「ターミナル」「ナントカterm」あるいは「テレビの形をしたアイコン」を選ぶとターミナルウィンドウが立ち上がり入力できました。
残念ながらそういうこともあるようです。マザーボードとの相性問題のようです。
TurboLinux Workstation4.0を入れるとき、インストーラがグラフィックボードを自動で認識した、と思ったが実はそれはMatrox Milleniumという名前が合ってるだけだった。VRAMの容量が全然ちがかったのである。
こっちから手動でグラフィックボード名とVRAM容量を選ぶことで正常に起動した。
別にOh my bash!とかBash you!とか言っているわけじゃなかったのネ?! bashという名前のシェルからのメッセージという意味だったのネ?!
同じようにcshだのtschだのもチェッとか言ってるわけでは・・・ないんだろうな。
そのファイルのあるディレクトリにまで行って、
sh ナントカ.sh
と打つことで、自動で解凍したりインストーラが起動してくれた。
よく読んでみたら「カーネルのソースがない」だった。なるほどカーネルがなければそもそも動きゃしねえよな。
多くのLinuxディストリビューションでは自動インストールを選ぶとカーネルのソースがインストールされないようだ。カスタムインストールで「全てインストール」を選ぶか、オタクっぽいコンポーネントを片っ端から選ぶことでインストールされるようになった。
Red Hat Linux7.0.2でこれにさんざ悩まされたが、どうも気にしなくていいらしい・・・実際にちゃんと通信できてても起動・終了時には出たからだ。通信に問題があるとしたら別の理由を探した方がいいと思った。
Red Hat Linux7.0.1の話だが、無線LAN間通信をしたいときにこの問題が起こった。
コマンドライン上で
#iwconfig wvlan0 -mode Ad-hocと打つことで、通信できるようになった。
のち、いちいち打たなくても、/etc/pcmcia/config.optsを
module"wavelan_cs" opts"....port_type=3 network_name=..."
のように書き換えることで、常時通信可能になった。
だが、もっと新しいRed Hat 7,1などのバージョンになると、また設定方法が変わってしまったようだ。
Solaris8はインストールした直後にはほとんどパスが通っていないことが判明した。/usr/sbinすら通っていないのでuseraddコマンドとかすらできない。
makeのためには/usr/ccs/binが必要だが、Solarisでmakeすると自動でgmakeが呼ばれることが多く、gmakeのためには/opt/sfw/binが必要とわかった。
.profileのPATH=以下に:区切りで書き足して行ってログアウトしてログインすることで使えるようになった。
標準であてがわれているシェルはBourne Shellというもので、Linuxなどで標準のbashよか進化してないものらしい。だいたいはbashと同様につかえるがときどきbash用のスクリプトを起動するときに不具合が生じることがある。そのときには
bash script.sh
と明示してやるとうまく行くことが多いようだ。
そーなのヨ!rootのログインシェルはAdmintoolで変えられないからあきらめておけばよいものを、/etc/passwordを無理矢理書き換えてしまったのヨ!そしたら「ユーザーシェルが不正です」と言ってログインできなくなってしまったのヨ!
わたしの場合は・・・他にユーザも作ってなかったし、ネットワークの設定もしていなかったので、再セットアップしかなかった。二度とやらねえと心に誓った。
Solaris8ではrootのホームはモロに/なので、環境設定ファイルが用意されていないみたいなのだ。
そこで、最初のうちは/etc/skel/local.profileというファイルを/.profileという名でコピーしていたが、
のち、他のユーザを作れば自動で.profileが生成されることがわかったので、それをコピーするようになった。
/etcの下にはnsswitch.dns, nsswitch.nis, nsswitch.nisplus, nsswitch.filesというのが4つあって、自分のマシンでDNSを参照したいときにはこのうちnsswitch.dnsを/etc/nsswitch.confという名前でコピーすれば結局すべて丸くおさまることがわかった(あと/etc/resolv.confも書かないとまずいけど)。
同様に、他のnsswitch.ナントカも、NIS, NIS+を使おうというときの雛形のようだが、こういうむつかしい設定をするときには最初から教本見て設定することにした。
このsmbpasswdは/opt/sfw/bin/smbpasswdと違って、自分で作らなければならない/opt/sfw/private/smbpasswdというファイルのようである。ただしセキュリティに関わる細かいアクセス権についてはちょとわかりません。すみません。
無論GNU makeをインストールしなければならないが、それでも出る場合がある。
1)多くのアプリケーションではSolarisでmakeとやると自動的にGNU makeを呼び出すように配慮してくれているが、してくれていないものもある。そのときはGNU
makeであることを明示しなければならない。
2)Solaris8はCompanion CDでGNU makeをインストールすると、/opt/sfw/bin/gmakeと自動的に名前をつけてくれるのでgmakeとやればよい。
しかし、他の方法でGNU makeをインストールした場合、Solarisのmakeとは違うフォルダでmakeを名乗ってすまし込んでいるので、別の名前でシンボリック・リンクを張るなど積極的に差別化することが必要のようだ。
Solarisだと、suでrootになると、それまでのユーザの環境設定も、root本人の環境設定までも忘れてしまうみたいなのである。
こういうとき、
su -
とすると、root本人の環境設定を思い出に上がることができる。ただし家もrootのホームに戻ってしまうので作業フォルダに再びやってこなければならない。
CD-ROMのアクセスランプがつきっぱなしで起動画面が凍り付く・・・だがそれはOSがCD-ROMを読もうと必死になっている最中、ということもあるようだ。数分間待ってみると、一気にエラーメッセージを吐き出して復帰したということもある。あまり焦ってはいけないのかも知れない。
Solarisでtar.gzファイルを解凍するときは
gunzip -c ****.tar.gz | tar xf -
とするようだが、これでも「ディレクトリの検査合計エラー」が出ることが、結構あるように思う。
そこで近頃はもう、GNU tarだけを使うようにしている。これはCompanion CDからインストールできるもので、/opt/sfw/binにパスが通っていれば
gtar zvxf ****.tar.gz
でLinuxと同じように解凍できているようだ。
そのlibナントカファイルを検索してみると、そのディレクトリにLD_LIBRARY_PATHが通っていなかった、というのが一番多い。
Makefileなどを書き換えてgccでmakeするように指定したつもりでも、./configureの段階で読まれるldというものが問題になるらしい。SolarisのldとGNUのldがあって、./configureのログを見ていると
「今読んだldはGNUで使用するldですか。違います」
というような表記がなされる。これが問題のひとつのような感じがする。
これを避けるためには次のような方法があるようだ。
1)GNU-binutilsをインストールする。これにGNU のldが入っている。
環境設定のPATHの順番を、GNUのldが入っているパス(たとえば/usr/local/bin)を/usr/ccs/binより先に書く。
2)gccを/usr/local下にインストールし直しちゃう。
3)強行手段として、/usr/ccs/libフォルダの名前を一時的に/usr/ccs/libbakみたく変えてしまい,
GNUなものたちのライブラリが入っている/usr/local/libなどについて、
ln -s /usr/local/lib /usr/ccs/lib
4)最終兵器的には/usr/ccs/binにまで手をつけ、一時的に/usr/ccs/binbakとしたのち
ln -s /usr/local/bin /usr/ccs/bin
わたしは2) と3)あるいは2)と4)の合わせワザでこれを一度解決できたことがある。
多くのフリーウェアのインストールのためのスクリプトは,bash用に書かれているのではないだろうか。一方Solarisのシェルはshが標準である。ユーザのシェルをbashに変えてもいいんだろうが、そこまでしなくても/opt/sfw/binにパスが通っていれば、
bash ./configure
でうまくいくことが結構多い。
SolarisのCompanionCDでインストールされるXEmacsはmuleをサポートしていないのでソースからコンパイルし直さなければならない。
このとき古いバージョンではmakeができてもコアダンプして起動しないのを、例の強制gcc読ませ方法を使うことで、起動にまでこぎつけることが最近できた。
24以上の最新バージョンであればフツーにmakeして起動するようだ。
ただ最新バージョンだとxim(ctrl+space)でATOKを呼び込めなかった。そこでWnnサポートでコンパイルしてXEmacsだけではctrl+backslashでWnnが使える。ちょっと不便だが。
メッセージは実はWnnのユーザ辞書ファイルが存在しないと言っていることが「メッセージログ表示」をさせて検討したところ判明した。この解決法は、なんでもいいからWnnに単語登録をすることであった。
Solaris8のインストール時に「デフォルトインストール」を選ぶと、システムパーティションというべき「/」には1Gくらいしか割り当てられないことがあとからわかった。のち、HDD容量全体が20Gの場合は、これが6Gくらいであるらしいとわかった。とにかく残りの容量はバージョンによって/export/homeとか/spaceとか、とにかくデータパーティションに当てられていて、アプリケーションなど/usrとか/opt/sfwとかに入れようとすると結構カンタンに容量不足と言われてしまう・・・
対処法は・・・まだ不明。きっと何かあるはず。でもわたしの場合は速攻でカスタムで再セットアップしてしまった〜〜。
画面が256色モードであることがわかった。Blade 100の場合はm64configコマンドで、色深度を調整したらフツーになった。