スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
タグ :

書評「Linux-DB システム構築/運用入門」

 2010-01-26
今回の書評は、最近のベストヒットです!

Linux-DB システム構築/運用入門 (DB Magazine SELECTION)Linux-DB システム構築/運用入門 (DB Magazine SELECTION)
(2009/09/17)
松信 嘉範

商品詳細を見る


LinuxでDB(MySQL)を使用して、Webアプリケーションを作成したことがありますが、
何も知らずにDBを使うと、ボトルネックとなりやすいです。
データはDBに入れちゃえば便利になる程度に使っていましたが、結構間違っていました。
とくにキャッシュに対する理解は絶対に必要です。
そんなキャッシュに対する理解が深まるのが今回紹介する本です。

ただ、キャッシュに留まらずHA(High Avalibity:高可用性)構成の基本が書かれています。
障害が起きたときに、サービスを止めずにどれだけサービスを継続するかはいつだって必要なので、とても勉強になります。

以上から特にWebアプリケーションなりでDBを使用したことがあるが、思ったほど改善できなかった。
高可用性のあるシステムについて基礎的なことが知りたい
DBとファイルシステムのキャッシュの仕組みについて理解したい
などに該当する人には打って付けです。

対象レベルは初心者から中級への間をうろついている、または中級になりたい人向けといった所です。
タグ :

今日の活動:subversionをWebから使う

 2008-12-20

今日は、SubversionをWebから使用できるようにします。

# yum install viewvc
# yum install viewvc-httpd

インストールが終わったら設定を変更だけど、あとはこちらと同じです。
バージョン管理システム構築(Subversion)- Fedoraで自宅サーバー構築

そしてhttp://サーバー名/viewvcにアクセスすると以下のよう画面になります。
ps_081220_046 
さらにsvnをクリックすると編集したファイルがあります。色々いじったのでリビジョンが16になっています。
リビジョンは簡単に言えば小規模のバージョンのことです。たぶん。
ps_081220_047 
さらに新規テキストファイルを開くと、今までのリビジョンが見られます。
ps_081220_048
これは便利ですね。downloadもできますし、前のバージョンと比較できます。
たとえばDiff to previous 15をクリックします。
ps_081220_049 
色つきでリビジョン16と15を比較しています。分かりやすいですね。(文字化けなのはテキストはshift-jis、メニュー項目はutf8のためです。utf8に統一しないとだめですかね・・・)
また比較するリビジョンを選ぶこともできます。
最初に比較したいリビジョンの[select for diffs]をクリックします。すると[selected]になり選択したになります。
ps_081220_050
この状態になるとselected 14と項目が現れます。これで好きなりビジョンを比較できます。
ps_081220_051
名前から分かりますが、見るだけであって、変更できないです。

タグ :

今日の活動:Subversionを使う

 2008-12-19

前日の続きです。今日は主に画像を使って説明です。

まず、クライアントPCからアクセスして操作をするためTortoiseSVNをインストールします。
いろいろありますが

 ・32 Bit     TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi     Installer
 ・17Japanese

の2つをDLしてインストールします。後者は日本語にするためのパッケージです。

インストールは割愛しますが、本体からインストールしてください。

インストールが終わったら適当にフォルダを作成してください。  
ps_081218_020
そしてフォルダの中で右クリックをすると、SVNチェックアウト項目がありますのでクリックします。
これで、サーバーとフォルダの関係を結ぶ設定をします。
ps_081218_022 
リポジトリのURLに、設定したURLを入力してOKをクリックします。
ps_081218_023
そして次に新しいファイルを作成します。ここは適当に新規テキストファイルにしています。
ps_081218_024 
そしてこの状態で右クリックしてSVNコミットを選択します。
ps_081218_025
ファイルにチェックをつけてOKをクリックします。
ps_081218_026
するとサーバーにアクセスして、ファイルをアップロードします。
どうやらコミットでサーバーへファイルをアップロードするみたいです。

以上で1人で操作する分には問題ないですが、Subversionは複数人でファイルを共有することに意味があります。
そこで追加でtestというフォルダを作成して、チェックアウトします。
こうすることでPCは同じですが、「test_svn」「test」の各フォルダは別人が使っていると同じ事になります。
この状態で、test_svnのフォルダにあるファイルは

 

test
お金ですよ。
それはなんと!


 

とします。testフォルダは

test
お金ですよ。
ふむふむ


として、1行目のtestは共通にし、2行目は「お金ですよ。」まで共通にし、test_svnにだけ3行目をもうけます。
適当な文章なのは気にしないで下さい。けっして深い意味はありません。
ps_081218_028
ちなみにファイルを更新すると!マークがつきます。コミットするとチェックマークになります。
それでまずはtest_svnだけコミットします。
ps_081218_029
無事にできました。
次にtestをコミットします。
ps_081218_030
するとエラーが出ます。そしてupdateを実行してくださいと言うので、やってみます。
ここで言うupdateは更新のことです。なぜかここで英語を使っています。
ps_081218_031
競合があります。といわれ、以下のような状況になります。
ps_081218_032
新規テキストファイルが黄色びっくりになり、3つのファイルが作成されます。
この状態ではコミットできないので、競合を手作業で解消します。
1つのファイルを分散環境で共有すると、ロックという概念がありますが、Subversionはロックの概念を使わず
競合を手作業で解消する理念を持っています。これはロックすると他の人が使えないのは時間の無駄としています。
その時間があったらとっとと更新して、違うところだけ後で解消してくださいというわけです。
なるほどとは思いましたが、テキストファイルオンリーですね。あ、でもやる気になればテキスト以外でもできるようになるかな?

とまぁさておき、今回の競合を解消します。右クリックでTortoiseSVN項目を選び競合の解消を選びます。
ps_081218_033 
すると競合の解消すべきファイル名が出ます。これをダブルクリックします。
ps_081218_044
すると競合を解消するためのマージ作業になります。
右と左に競合したファイルの中身が表示されます。下に表示されているのが、マージした結果です。
ps_081218_034
ps_081218_035
見れば分かりますが、共通しているtestだけ背景色が白色です。他はオレンジ、赤色に赤色になります。
これには意味があります。共通は白色、オレンジは削除、赤色は競合になります。あくまで初期設定なので、変更できます。以下に初期設定の配色を示しておきます。
ps_081218_045 
ps_081218_036
次に実際のマージ作業ですが、今回は2行目は「お金ですよ。ふむふむ」として
3行目は「それはなんと!」にするとします。
その場合は、「お金ですよ。ふむふむ」がある行を選び、右クリックします。そしてこのテキストブロックを利用を選びます。
ps_081218_037
するとマージ後の欄に「お金ですよ。ふむふむ」が緑色で現れます。この緑色が競合解消を表します。
ps_081218_038 
次に同じように「それはなんと!」を選びます。これで終了です。終わったら保存してマージ作業は終了です。
今回は、クリックで終わらせましたが、マージ欄で打ち込んで修正できます。
ps_081218_039
マージが終わると終了!と出ます。

ps_081218_040
勝手にコミットされるわけでもなく、ここでコミットして終了になります。
ps_081218_041

ps_081218_042
ちゃんとコミットできました。

行単位の差は出ましたが、行の中でも差分は出なかったのは残念です。
大抵は行で事足りますけどね。
タグ :

今日の活動:subversionを導入する。

 2008-12-18
同じソースコードがいくつかのサーバーにそれぞれあって、
微妙に各サーバーで変更されています。

そのため、改良された一番良いソースコードを使いたいのですが、記憶力がないために
あれ?どこだっけ?
となって、探すのも大変なので、修正をまた繰り返すことがありました。

そこでバージョン管理ソフトの導入です!

と言うことで、有名なCVSを考えましたが、少し調べてみると欠点があることがわかりました。
Concurrent Versions System - Wikipedia
そして調べるとSubversionが良さそうなので、導入することにしました。
Concurrent Versions System - Wikipedia

Linuxのディストリビューションはfedora10を使用していますが、
インストール時に開発にチェックをつけていたせいか、すでにsubversionはインストールされていました。
ただ、subversionをhttpアクセスで行うことができるみたいです。
そのためにはApacheがインストールされている必要があります。
これはすでにインストールされているので、割愛します。
そしてApahceモジュールのmod_dav_svnが必要になります。
これはインストールされていないので、yumでインストールできないか「mod_dav_svn」で検索する

yum search mod_dav_svn


============================= Matched: mod_dav_svn =============================
mod_dav_svn.i386 : Apache server module for Subversion server


あったので、インストール

yum install mod_dav_svn


そして/etc/httpd/conf.d/にあるsubverison.confを開き
行末に以下を追加します。


DAV svn
SVNPath /var/svn/repos
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/httpd/conf/.htpasswd
Require valid-user


そして
管理するファイルのディレクトリを作成して所有者をApacheにします。

mkdir /var/svn
svnadmin create /var/svn/repos
chown -R apache:apache /var/svn/repos/



次に、認証するユーザを追加します。

htpasswd -c /etc/httpd/conf/.htpasswd lab


パスワードを2回入力します。

次にApacheの設定を反映するために、設定をチェックして再リロードします。

/etc/rc.d/init.d/httpd configtest
Syntax OK
/etc/rc.d/init.d/httpd reload


これで
http://IP Address/repo
にアクセスすれば、ユーザIDとパスワードを聞かれますので入力してログインすると

repo - Revision 0: /


と表示されれば成功です。

今回はここまで。

■参考
バージョン管理システム構築(Subversion) - Fedoraで自宅サーバー構築
subversion ― takanory.net
SubversionをApacheから使う - satake7’s memo
タグ :

fedora9にnVidia系のビデオカードドライバをインストール

 2008-09-27
現在fedora9を動かしているパソコンの画面出力が1280x1024までしかなく、20.1型のディスプレイだときれいに表示されなくて、困っていました。
そこでビデオカードを取り付けて最適な1680x1050にすることにしました。
ビデオカードは「WinFast PX7200 GS TDH」にしました。
2Dしか使う予定がないので、スペックは求めませんでした。
あと、ファンレスだから少しは静かです。


取りつけた後、fedora9を起動したらGMONEが起動せず、CUI操作になりました。
仕方がないので、wgetを使って、Unix Drivers Portal PageにあるLinuxのドライバをダウンロードしました。
自分はこのとき最新のVersion: 173.14.12を使いました。

DLしたら「sh NVIDIA-Linux-x86-173.14.12-pkg1.run」を打ってインストールしろと書いてあったので、その通りやってみたらできませんでした。
仕方がないので、ググってみたら
週末雑貨 cocolog館: Fedora 9 で四苦八苦 環境構築編 nVidia その3
とても役に立つブログがありました。
そしたら、カーネルソースが必要と書いてありました。
「kernel-devel-2.6.25.4-30.fc9.i686」
というパッケージらしいです。数字はカーネルのバージョンによって違うため
yum serch kernel-devel
と打って調べてみるとありました。自分は
「kernel-devel-2.6.25.14.fc9.i686」
でした。
yum install kernel-devel-2.6.25.14.fc9.i686
と打ち込みインストールが完了し、また
sh NVIDIA-Linux-x86-173.14.12-pkg1.run
を打ってインストールはできましたが、起動しませんでした。
先ほどのブログではこれで大丈夫なのですが、どうもだめです。

(EE) NVIDIA(0): Failed to load the NVIDIA kernel module!
とstartxで途中で処理が終わり、表示されます。

仕方がないので、ググるもどうもない。そこでネットにある英語のREADMEを読み始めました。
NVIDIA Accelerated Linux Graphics Driver README and Installation Guide

すると8章にありました。
Chapter 8. Common Problems

My X server fails to start, and my X log file contains the error:

(EE) NVIDIA(0): Failed to load the NVIDIA kernel module!

The X driver will abort with this error message if the NVIDIA kernel module fails to load. If you receive this error, you should check the output of dmesg for kernel error messages and/or attempt to load the kernel module explicitly with modprobe nvidia. If unresolved symbols are reported, then the kernel module was most likely built against a Linux kernel source tree (or kernel headers) for a kernel revision or configuration that doesn't match the running kernel.
You can specify the location of the kernel source tree (or headers) when you install the NVIDIA driver using the --kernel-source-path command line option (see sh NVIDIA-Linux-x86-173.14.12-pkg1.run --advanced-options for details).

Old versions of the module-init-tools include modprobe binaries that report an error when instructed to load a module that's already loaded into the kernel. Please upgrade your module-init-tools if you receive an error message to this effect.

The X server reads /proc/sys/kernel/modprobe to determine the path to the modprobe utility and falls back to /sbin/modprobe if the file doesn't exist. Please make sure that this path is valid and refers to a modprobe binary compatible with the Linux kernel running on your system.

The "LoadKernelModule" X driver option can be used to change the default behavior and disable kernel module auto-loading.


どうやらオプションで
「--kernel-source-path」を指定する必要があるらしいです。どうやらこれはカーネルのバージョンを更新したら必要みたいです。
そこで打ち直してみました。

sh NVIDIA-Linux-x86-173.14.12-pkg1.run --kernel-source-path='/usr/src/kernels/2.6.25.14.fc9.i686'

しかし、今度はカーネルがロードされません
そこでREADMEで調べてみたら、ありました。


I just upgraded my kernel, and now the NVIDIA kernel module will not load.


The kernel interface layer of the NVIDIA kernel module must be compiled specifically for the configuration and version of your kernel. If you upgrade your kernel, then the simplest solution is to reinstall the driver.

ADVANCED: You can install the NVIDIA kernel module for a non running kernel (for example: in the situation where you just built and installed a new kernel, but have not rebooted yet) with a command line such as this:

# sh NVIDIA-Linux-x86-173.14.12-pkg1.run --kernel-name='KERNEL_NAME


カーネルの更新があったらちゃんとカーネルの名前を指定しないといけないみたいです。
カーネルの名前は
uname -r
で確認できます。
そこで
2.6.25.14-108.fc9.i686
と表示されたので

sh NVIDIA-Linux-x86-173.14.12-pkg1.run --kernel-source-path='/usr/src/kernels/2.6.25.14.fc9.i686 --kernel-name='2.6.25.14-108.fc9.i686'

と打ち直してみました。
しかしだめです。
そこで深くググってみましたら、ヒントがありました。かってに Linux4 (Freely Linux4)

注) ◆ pwc, ivtv, xawtv 等の、再構築する際、
使用する、kernel バージョンの、
i586用、i686用を確認し、
同じ、i?86用の、kernel-devel を使用すること。


そうか!同じのを使わないとだめじゃん!
ということでしたが、kernel-deveが古い・・・同じじゃない・・・ということで
もう一度yumで確認してみたら、現在のカーネルと同じのがありましたのでインストールしました。
そして

sh NVIDIA-Linux-x86-173.14.12-pkg1.run --kernel-source-path='/usr/src/kernels/2.6.25.14-108.fc9.i686 --kernel-name='2.6.25.14-108.fc9.i686'

と打ち直して、インストールして、
startxを打ったら無事に起動できました。

いやーーー、面倒!
これは初心者がLinuxを扱うのはまだまだと実感しました。
でもUbuntuだとこの辺りの面倒なことをやってくれる機能があるとかないとか・・・。

あと、ビデオカードをインストールしてからカーネルが2.6.26.3-29に更新したら、またGNOMEが起動しなくなりました。
でも、ドライバを2.6.26.3-29と指定してインストールしたら起動しました。
カーネルが更新したらいちいち、再インストールしないといけないのは面倒ですね。今回のことがあって慣れたから良いけど、どうにかしてほしい。
タグ :
≪ 前ページへ ≪ トップページへこのページの先頭へ  ≫ 次ページへ ≫
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。