Linux」カテゴリーアーカイブ

Java

まだ勉強中の言語ですけど、入れておこうと思ったのですが、どうやらライセンスの受け入れでACCEPT_LICENSEをmake.confへ入れないと駄目だった。更にデフォルトだとフリーの奴が入ると思ってたのですが、それが消えてて駄目だし。仕方なくIBMの奴を入れようと思ったけど、IBMから落とせるのはSR8でGentooのSTABLEはSR7だったりする。マスクを外してSR8をインストールするも、BuildOnlyとか訳のわからん状態でげんなり。
まあ、うちのメインは今でもCだからどうでもいいんですけどね。別のスクリプト言語でも勉強しようかとか思ったり。

PowerBook G4へGentooを入れる

やっとGNOMEのインストールまで終わった。
インストールでのメモを残しておく。
・ブート
ppcのminimalをCDRかRWに焼いてCD起動する。優先順位は詳しくないので知りませんが、うちは難なくブートできた。もしHDDを見に行くならCキーを押しながら起動すればCDブートになる。CDイジェクトはOpenFirmwareからならeject cdで吐き出される。Linuxからは知らない。
boot:プロンプトで「ppc32」を打ち込んで起動する。デフォルトはG5の64ビットカーネルなので選んでしまうとメモリーエラーで起動しない。
・認識など
LiveCDでNICも難なく認識する。Intel PRO/1000ドライバがロードされてた。ビデオもRADEON RV250で自動認識。サウンドは自動認識せず(モジュール設定すればOK)
・区画
mac-fdiskで設定する。ハンドブック通りにやればいい。まず、iコマンドで初期化をし、bコマンドでAppleBootstrapを作成する。/bootとは意味が違うので要注意。cコマンドでswapを作成、あとはrootパーティションを作成すればいい。それ以外はご自由に。出来たらスワップ作成、rootをフォーマットしてマウントする。AppleBootstrapは放置してOK。ブートローダーを設定するときにフォーマットされる。
・日付設定
うちはまずタイムゾーンの設定とUTCの設定をしてしまいます。JSTで正常な時刻が出るように設定してハードウェアクロックはUTCで設定してシステム時刻を書き込んでしまう。正確な時刻はあとでNTPなどを入れてから同期する。
・STAGE3の展開とカーネルコンパイルまで
stage3とportageの最新をとってくる。コンパイルオプションは-marchをG4へ。USEフラグはまだ設定しないでおく。ここで設定すると循環依存を引き起こして苦労することになるので。最低限XやGNOME辺りまで入れてから設定し、emerge -uDN worldでリコンパイルすればいい。
・カーネルの設定
genkernelを使ってるので特にこれといって指定するものは無い。各自好きに設定すればいいと思われます。うちはsplashも入れようとしましたが、どうもうまく行かない模様。
・モジュール設定
サウンド関係が素の状態だと認識されません。snd_powermac、snd_mixer_oss、i2c-devを/etc/modules.autoload.d/kernel-2.6へ追加します。
・fstab
rootとswapだけ指定。/bootはコメントアウト。分けてる人は指定するべし。
・その他設定
ハンドブックでやってることを一通り必要なのをやればいい。
・ブートローダー
うちはyabootを使いました。まずyabootconfigで自動作成し、/etc/yaboot.confを手直しするのがいいかと。デュアルブートとかしらね。カーネルオプションはappendで指定した。images内に指定すればいい。
mkofbootでAppleBootstrapをフォーマットしてインストール。一応ybin -vで更新しておいた。
・そして起動
ぱにくったり起動しなければLiveCDを起動して区画をマウントしてシステムに入り手直しする。起動できれば自分の環境下でいじればいい。
・ALSA
モジュールがロードされてればalsaconfで設定できる。
・Xorg
公式ドキュメントのインストール通りで特に問題ない。うちはHALを使うのでxorg.confは特に設定をいじってない。keyboardとmouseをいじったけどHALの方が疲れてるから意味がないと思われ。
・HAL
/etc/hal/fdi/policy/にキーボードとマウス用のfdiを記述する。うちはThinkPadで設定した奴をそのまま持ってきてjp用に直しただけ。マウスも特に指定はない。両方ともドライバはevdevにしてる。xf86-input-evdevのマージも忘れないように。
・緊急用に
うちはXを上げたときに操作不能になると困るのでtelnetdを有効にしている。xinetdとnetkit-telnetdをマージし、xinetd.confのony_fromに自分のネットワークアドレスを追加してtelnetdを有効にしてxinetd起動させておく。
それと、自分のユーザーを追加してwheelグループにも参加させておく。これでtelnetでログインしてsuできるようになる。
もし、Xを起動して駄目ならtelnetで入ってxdmなどを止めれば問題ないし、telnetで環境を整えてもいいし。
あとはひたすら必要なパッケージを入れていけばいい。
3Dアクセラも効いてglxgearsも4600くらいか。ちょっとした動画も問題ないと思われます。

最近買った本

金額的にはヤフオクでOh!X、Oh!MZが高いか。冊数が多いだけですけど。単価計算なら1冊100~300円程度か。これでS-OS関係の記事は一式揃ったのと、前から探してたMZ-2000用の北斗の男のソースが手に入った。これでOh!MZは内容を見て落札すればいいので楽になりました。あとは失われたI/Oを何とかすれば。

カキの作業便利帳―小玉果・裏年をなくす法、改訂 ウメの作業便利帳―結実安定と樹の衰弱を防ぐ、キウイフルーツの作業便利帳―個性的品種をつくりこなすという本を買った。農文協の本が詳しく書いてあって教科書的な構成なのが選んだ決め手。片手間に出来る果実でキウイをやりたいと思ってまして、ヘイワードがあるのでそれを練習がてら手入れして行こうと思ってます。柿も30本くらい自由にしていいと言われてるのでそれも収益になればと思ってます。消毒やら下草刈りやらやったので次は収穫前にもう一度消毒かな。ウメは既に収穫直前ですけど来年もっと実をならせようと思うので知識としてです。
キウイがうまく行くならこれを副業のメインにしたいと思います。直売所とかネット通販も考えてるのでまずは安定収穫からか。柿は葉っぱのお茶を作ってみたけど売れるかは別かな。すぐった枝に生えてたのを利用したのですけど、本気で作るならもう少し集めてもいいと思った。

引っ越してから放置してあるAmigaを何とか動かそうと思うのですけど、設置場所が難しい。基本15KHzのモニターですけど、アップスキャンコンバーターも持っててそれを使えば31KHzでもいけるのでメインのモニターに出せると思います。ただ、メガデモとか見るなら15KHzじゃないと厳しいかなって。
うちのはA1200をベースにタワー化して68040だったかプロセッサを載せてます。PCIバスも入れてあり、NICも刺してるので正常に動けば現役で使えるのですけどね。最近の情勢を調べつつ中身を空けてチェックしてからか。キーボードタイプは格好いいのですけど拡張がネックですしね。動いたところでソフト類がいまいち整理できてないので何とかしないと。

ひとまず

gccの警告以外特に問題なかった。
サーバは-O3でコンパイルしてるのでもっとやばい気もする。
寝室にノートを持ち運んで使ってたのですけどちと厳しいのでPowerBookG4へGentooを入れることにしました。研究用に当時購入したのですけど、MacOS自体もう使わない可能性も高いので有効活用したいと思いまして。インストール用のDVDがあるので入れ替えてもいいのですけど、HDDをそのまま入れ替えてインストールしました。トルクスドライバは以前手に入れて入れ替えの実験をしたことがあるので今回は特に問題なし…と思ったらやはりハマった。
まずLiveCDの起動で問題が。最新はG5がデフォルトになっており、64ビットなのを知らずに起動してメモリーエラーが出ました。もう一度あけて見たけどメモリーなんて購入時すらいじってないのでCDRWへの書き込みミスか?とか思って何度か焼きなおしてるうちに、ふと気づいたという間抜けぶり。ブート時にppc32を指定したら起動しましたとさ。
ハンドブックの通りにインストール。次にハマったのがyaboot。再起動をしてみるも、unknown filesystemだったかエラーが出て起動せず。手動でyaboot.confをいじったのが原因と思ってyabootconfigで作り直してdeviceもちゃんと設定して再起動してみても駄目。再度yabootconfigで作った奴と見比べて見たらパーティション番号が違ってた。x86系だとboot、swap、rootと区画を切るのですけど、Macの場合はbootが無くて別の区画が2種類入って4区画だったのを忘れてたという。しかも作り直した奴を使えばいいのですけど、appendに記載したパラメータを生かすために前の奴をベースにしたのが問題だったという。カーネルの作り直しが面倒だからsplashも含めてコンパイルしたのでその関係のパラメータも含めてたのが敗因。まあ、そもそもMac系でsplashが使えるのか不明なので作り直す可能性もあるわけですけどね。
起動できたのでXorg -configureでxorg.conf.newを作りましたがXorgがエラー吐いてるのは見なかったことに。Xを起動してみたら何とか動いてる感じです。何も出てこなかったのはマウスの設定が駄目だっただけで特に問題なさそうです。GNOMEで使いたいので関連のコンパイルに入りましたが一晩かかりそうなので放置してあります。続きは完了後かな。

マシンのメンテ

どうやらgccのバージョンが上がったらしいのでメンテしてなかったのですがサーバのメンテをする前に別のマシンでアップデートを。
カーネルは最新状態、GNOMEのバージョンも上がってる模様。この辺りはいいのですが、気になるのがPythonか。2.6のバージョンが上がりつつ、3.xも同時にインストールされるらしい。Pythonは慎重にやらないとportage自体おかしくなるので一番嫌なところと思う。
まずはgcc。昨日寝る前にアップデートをしてたのですが、下記の警告が出てたり。
/var/tmp/portage/sys-devel/gcc-4.4.3/work/gcc-4.4.3/libgcc/../gcc/unwind-dw2-fde.c:843:
warning: dereferencing type-punned pointer will break strict-aliasing rules
同じソースから大量に出てた。コンパイルオプションに-fno-strict-aliasingを追加すればいいらしいのですが、そもそも警告が出るようなソースって大丈夫なの?っていつも思う。コンパイルオプションは人それぞれなので仕方ないといわれたらそれまでですけど、これを指定されてれば警告すら出ないという推奨値くらい欲しいものです。やはり警告1つでても不安が残る。自分でプログラミングをするときは警告の出るような書き方はしないし、警告=コーディングミスと思ってしまうので不安になってしまうのですよね。
今思うと、4.3で4.4のコンパイルをしたからそれも原因か?とか思ったり。実際同じになりそうですけど、最新のコンパイラでコンパイラをコンパイルしないと気持ち悪い感じもする。glibcのコンパイルが終わったらもう一度コンパイルしてみよう。

さぼり気味

いろいろとあって忙しかった。Master of Epicをやってたからじゃないんだよ。

つーことで、小説を買った。ラノベで980円は高くね?って思いますけど、オンラインゲームで使えるアイテムが付いてるのでこの値段なのでしょう。最近の小説は高いからこんなものと思いますけど、ちと痛い金額かな。
ゲーム内で使えるアイテムは、左手に装備する盾の代わりですが、フェレットもどきみたいなのが装備できるようになる。ペットに将来なるならいいな…なんて思いますけど、こういう特殊なアイテムは無理だろうね。前の小説であるマスター オブ エピック ~運命の双子~ (HJ文庫)は腰の装飾品だったけど今回の方がいい感じ。
そういえば前の奴の途中で止まっていて話もすっかり忘れてる。読み直さねばw

アップデート覚書

1.emerge –sync
2.emerge -uDNp worldでアップデートされるパッケージを確認。
 マスクされるパッケージは警告が出るのでチェック。不要なら消す。
3.gentoo-sourcesがある場合は先行してアップデートし、カーネルを再作成。
4.emerge -uDN worldでアップデート。
5.カーネルが新しい場合、下記パッケージをリコンパイル
 ・nvidia-drivers(ati-driversもそうかも)
 ・xf86-input-*(不要な場合が多いけど一応。)
 ・vmware-playerを起動してupdaterでモジュールをアップデート。
6.opensslが含まれる場合、proftpdをリコンパイル。
7.2でライブラリとか消した場合も含めてrevdep-rebuildでリンク切れをチェック。切れてるファイルを一覧し、equery b ファイル名でパッケージ名を調べてリコンパイル。(revdep-rebuildは消されたライブラリを再コンパイルするので参照する側をコンパイル)
8.念のため再起動。
うちの環境ではこれくらいかな?使うパッケージの組み合わせではもっといろいろありそうな感じです。

vmware player

2.6.32だとvmware playerのネットワークが駄目だ。ブリッジで使ってるのですけど、それ以外はわかりません。
playerを起動すると毎回updaterが動いてコンパイルするのですが、どうやらvnetUserListener.cがバグってるらしくて、コンパイルエラーが出る状態です。それによりvmnet.koが作成されずにネットワークモジュールがロードできないという状況。
対処方法がぐぐると下記にありました。
http://blog.chmouel.com/2009/12/05/vmware-vmplayer-and-kernel-2-6-32/
ちょっと読み替えると、/opt/vmware/player/lib/modules/source/vmnet.tarを展開、vmnet-only/vnetUserListener.cを開いて37行目(includeが並ぶ次の行)に#include “compat_sched.h”を追加して書き込み、vmnet.tarを書き換えればいい。そしてvmplayerを開始すればupdaterが動いてコンパイルするのでモジュールが出来るという感じになります。
前のカーネルで動かそうかと考えましたけど、やはり同じ問題で解決方法もあるから調べるしかないですね。外人のブログとかすげーな。Gentooだとバイナリ提供以外はソースが手元にあるわけだから調べて解決してるんだろうね。そのパワーは見習わないとね。

サーバのメンテ

カーネルが2.6.32-r7になってるみたいですね。portageのアップデートもありましたけど、emerge -uDNp worldして更新されるパッケージを確認してるときにequeryで警告が出てた。
/usr/lib/portage/pym/portage/util/__init__.py:1121: DeprecationWarning: The ‘myroot’ parameter for portage.config.getvirtuals() is deprecated
result = lazy_item.func(*pargs, **kwargs)
まあ、細かいことは気にせずにカーネルを再作成してパッケージの更新が先だな。カーネルを作ったらnVidiaのドライバも更新しないと再起動でモジュールなしで死ぬんだよね。あとはカーネル依存のパッケージはカーネルを先に作らないとコンパイルエラーになるしね。
カーネルが出来上がるまでしばらく待ちです。

MySQLその2

超基本的なSQL文とか。
●概念的な構成というか
MySQLでは、データベースという塊を管理し、データベースはテーブルという塊で構成される。テーブルは列(カラム)で構成され、列にデータが保管される。列は、数値型、文字列型、ENUM型、BLOB型、日付・時刻型、ビット型などがある。
スーパーで果物の価格表を作ろうとした場合、”ショップ”というデータベースを作成し、”果物”というテーブルを作成する。テーブルは、文字列型の”フルーツ名”の列と数値型の”価格”の列を持つことになる。
●データベースの作成・削除
CREATE DATABASE shop; で作成できる。
DROP DATABASE shop; で削除となる。
SHOW DATABASES; でデータベースの一覧を表示できる。
●データベースの使用
明示的に使用するデータベースを指定しておくとSQL文中にデータベース名を省略できる。
USE データベース名; で使用するデータベースを変更する。
●テーブルの作成・削除
CREATE TABLE テーブル名 (列1…); で作成する。
列は、列名 属性のペアで指定する。名前だけ指定することも出来るらしいが明示的に作っておくのがいいかも。
DROP TABLE テーブル名; で削除となる。
SHOW TABLES; でテーブルを一覧できる。
SHOW COLUMNS FROM テーブル名; でテーブルを構成する列の一覧を表示できる。
●データの挿入
INSERT INTO テーブル名 (列…) VALUE (値…); で1行挿入する。
列に該当する値を指定する。
REPLACE文でも挿入となる。使い方が若干違うので用途に応じて使う。
●データ検索
SELECT 列 FROM テーブル名;
データベースの肝とも言える検索処理。記述は用途によっていろいろ指定がある。
基本は上記のようにテーブル内の列を取得する。条件は続けて指定するようになる。
まあ、この辺りが勉強の肝になるでしょう。
●データ更新
UPDATE テーブル名 SET 列 = 値 [WHERE 条件];
WHEREなしだと列全体の値が書き換わる。大抵は条件に一致するデータを書き換えると思われる。
これも用途次第。
●データの削除
DELETE FROM テーブル名 WHERE 列 = 値;
これも用途次第でいろいろと指定されると思われる。基本は列の値に一致するデータでしょうね。

後は適材適所なSQL文を書けるようになれば使いこなせる。それからトランザクション、ロックの仕組みと制御方法も理解しおかないとオンラインストアなどのアプリは作れないよね。管理面だとバックアップとか最適化とか運用面のやり方も勉強しておく必要がある。プログラミングだけなら管理面は不要かもしれませんけど、障害調査でログの見方とか状態を把握できないと調べられないしね。
設計面だとレプリケーションのやり方や注意事項も調べないといけない。覚えるべきことは山とあるけどとりあえずは上記の調べたところまで覚えて使いこなせるようにならないとダメかもね。