「linux」カテゴリーの記事一覧
linuxでvpnclientを動かすとき
以前、linuxでvpnclientを動かすとき手でipアドレスを指定しないといけないと書いたが、それをスクリプトにしてみた。
#/bin/bash /usr/local/src/vpnclient/vpnclient start ifconfig vpn_net inet down ifconfig vpn_net inet up 192.168.xx.yy netmask 255.255.255.0 broadcast 192.168.xx.255 ifmetric enp2s1 10 ifmetric vpn_net 20
/etc/pcmcia/networkを戻したら直った
pcmcia-csを3.1.34に上げたとき、/etc/pcmcia/networkがアップデートされていた。ここにごにょごにょいっぱいスクリプトが書いてあるけど、ifup ifcfg-eth0をする箇所がない。なぜに?
幸い、古い/etc/pcmcia/networkがnetwork.Oとしてバックアップされていたらから、古いものに戻した。古いものにはifup ifcfg-eth0しか書いてないのだけど、これで十分じゃない?戻した後はpcmciaカードを刺したらネットワークが使えるようになった。
pcmcia-cs-3.1.34に上げたら
libretto20のカーネルコンパイルは無事に終わり2.2.14から2.2.26になった.それは良かったのだが,ついでにpcmcia-csのバージョンを3.1.24から3.1.34に上げたら困ったことが起きた.3comのpcmcia LANカードを差し込むとピポッと言って認識してくれるのだが,ネットワークの設定がされない.ログを読むとeth0というデバイスはできている.手でifup eth0と打ち込むと良いのだが,以前は自動的にifup eth0をやってくれていた.何が変わったのだろう.どっかのスクリプトが変わったのだろうな.調べるのは面倒だなあ.かと言って元に戻すのも面倒だし.困った.
libretto20でカーネルコンパイル
libretto20はRedhat6.2を素で入れたままなので,kernel-2.2.14だ.これを2.2系最終版の2.2.26にしたい.ソースは拾ってこれたので,展開して,あれ?どうすればいいんだ?5年くらいやってないので忘れた.ブログを”カーネル”で検索したらあった.良かった.もういちど書いておくと,
make config make dep make clean make bzImage make modules make modules_install make install (これでliloも実行される) cd pcmcia-xx make config make all make install
kernel-2.4になってからは全くいじってないけど,きっとコンパイルの作法は変わったのだろうな.
sshdをipv6対応にしてみたらipv4に繋がらなくなった
sshdをipv6対応にするにはsshd_configのListenAddressの行を
ListenAddress ::
にするだけで良いとネットにあった.ipv4は無効にはならなくて,ipv6で繋がらなかったらipv4に自動的に切り替わるとあった.そこでsshd_configを書き換えてsshdをリスタートした.すると確かにipv6でssh接続ができるようになった.ところが,別のマシンからipv4で繋げようとすると繋がらなくなった.ネットの説明と違うぞ.opensshが古い(4.x)せいか.やむを得ず元に戻した.
Pound-1.0とPound-2.7ではpound.cfgの文法が違った
libretto20でやっとpoundが動いたのでpound.cfgを編集して自サイトの環境に合わせて起動したら、こんどはpound.cfgの文法が違うとエラーになる。なぜに?man poundで調べると、これまで使っていたPound-2.7と、今回コンパイルしたPound-1.0ではpound.cfgの文法が違うことが判明した。Pound-2.7のpound.cfgはこんな感じ。
User "daemon" Group "daemon" LogLevel 3 Alive 10 ListenHTTP Address 0.0.0.0 Port 80 RewriteLocation 0 Service URL "/hoge/.*" BackEnd Address 192.168.0.1 Port 8080 priority 5 End BackEnd Address 192.168.0.2 Port 8080 priority 5 End End END
Pound-1.0のpound.cfgはこんな感じ
User daemon Group daemon LogLevel 3 Alive 10 ListenHTTP 0.0.0.0,80 UrlGroup ".*" BackEnd 192.168.0.1,8080,1 BackEnd 192.168.0.2,8080,1 EndGroup
Poundのコンパイルには新しいgccが必要かもしれない
libretto20でPoundを動かそうと(これまではThinkpad T41で動かしていた)、configureしたらエラーが出た。SSL_CTX_newがないとか。ソースコードで宣言はしているので構文エラーではない。opensslのライブラリのlibssl.aの中にもちゃんとssl_cert.oがある。どうもこれはgccのバージョンが古いせいみたいだ。libreto20のgccはegcs-1.1.2だ。Thinkpad T41はgcc4.1.2だ。libretto20のgccバージョンを上げようと思い、i7の速いマシンでtargetをi486にしてgcc3をコンパイルしたら途中でエラー終了する。このマシンのgccは5だ。gccのバージョンが新しいと古いバージョンで正常コンパイルできていたソースコードがコンパイルできなくなることがあるとネットにあった。時間がかかるがlibretto20のegcs-1.1.2でコンパイルした方がよさそうだ。まずgcc3.4をコンパイルして、そのgcc3.4でgcc4.0をコンパイルしよう。gcc3.4のmakeをかけてから2日後にmakeが完了した。これからgcc3.4が動作するように環境変数を変えて、gcc4.0のコンパイルを始める。たぶん2日以上かかるだろうな。
苦労してgccをコンパイルしたのに、相変わらずPoundのconfigureでエラーがでる。libsslがないと言っているがlibssl.aはきちんとある。どうにも分からなくて、エラーが出るconfigureを編集してエラーでexitするところをコメントアウトした。これでMakefileができた。そしてコンパイルすると今度はzlib関係で変数を宣言していないとエラーになる。zlibもきちんとあるんだけど。ネットで調べるとgccの引数に-ldl -lz を加えればよいことが分かった。Makefileを編集して-ldl -lzを加え、コンパイルすると今度はうまく行った。できあがったpoundはきちんと動いた。