「linux」タグの記事一覧
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になってからは全くいじってないけど,きっとコンパイルの作法は変わったのだろうな.
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はきちんと動いた。
freshclam エラー
思いついてCentOSのマシンにもアンチウイルスプログラムを入れることにした.clamavのsrpmを拾ってきてビルドしてrpmを作った.それをインストールして,ウイルスDBを最新化するためにfreshclamを実行した.しかし,何度やってもエラーになる.syncしてないとかなんとか.いろいろ試したが効果はなく,最後に面倒になってDBのファイルを全部消してみた.
cd /var/clamav rm *
この後,freshclamを実行したらうまくいった.DBバージョンの確認は
sigtool --version
でできる.
clamav-0.99.2コンパイルとインストール
srpmからclamav-0.98.4をインストールしたが,srpmからrpmができるのだから,tarballからコンパイルだってできるだろうと思った.そこで,最新版の0.99.2をインストールすることにした.OSはCentOS5.11.clamav-0.99.2.tar.gzを展開して
configure
make
make check
make install
で完了.特に他に何かインストールする必要はなかった.最初からこれをやれば良かった.
srpmcpio: MD5 チェックサムが適合しません
CentOS5にyumでアプリをインストールしようとした.古いパッケージを置いてある
http://vault.centos.org/5.11/os/$basearch/
からひっぱってこようとしたら,中のxmlファイルが壊れていると表示される.整合性がとれないのかなと思い,yum clean allをやってみたが変わらない.本当にファイルが破損しているようだ.しかたないので他のサイトを探して,rpmパッケージは見つけられなかったが,src.rpmパッケージを見つけてきた.rpm -iコマンドでソースを配置しようとすると,
「srpmcpio: MD5 チェックサムが適合しません」
とエラー終了する.困ったと思ったがさらにネットをさまようとrpmの引数に
–nomd5
をつければMD5チェックサムを無視してくれることが分かった.これでやっとソースが展開できて,rpmbuildで所望のrpmパッケージが出来た.
UnityとDashのこしておくか
Dual Pentium 3 – SのマシンはUbuntu 12.04LTSだ.サポートが切れて9ヶ月経過した.14.04LTSへのアップグレードは失敗することが分かっているのでしていない.サポート切れで使い続けるのもなんなので,Pentium 3で動くことを確認したDebian Stretchに変えようとして思いとどまった.なぜなら12.04LTSは悪名高いUnityとDashなのだ.18.04LTSからはUnityがなくなるので,これはこれで貴重だ.1台くらいUnityが動くマシンを残しておこうという気になった.幸いPentium 3 – Sでは許容できるレスポンスでUnityとDashが動く.Debianに変えるのはいつでもできるので,Unityに飽きるまではこのまま置いておくことにした.