= Cresc. =

>>The memory over IP
>>|

CentOS6.3+wine-1.4とか1.5まとめ

2012-11-28 05:32:43 | Filesystem.log2
さむいさむい(挨拶)
窓に防寒対策を施したりしましたがどのくらい効果が有るやら。

そんな中、CentOS6.3(32bit)とwineのセットアップをしておりました。
CentOSはとくにカスタマイズインストールなどせずに、
そのままインストールしております。(KDEなど選んでます)

yumにwineが無かったので公式からダウンロードしてインストールしております。
公式はこちら。
http://www.winehq.org/
ダウンロード手段は色々あると思いますが、
wgetコマンドは有っても困らないと思うのでとりあえずインストールします。
rootアカウントで以下のコマンドを入力します。
yum -y install wget
ちなみにwgetは無くても良いと思います。
※wineのダウンロードはユーザーアカウントで行います※
あと、「KDEシステム設定内」の「国と言語」の設定で日本を選んでおきましょう。
(winecfgで設定画面開いたときに日本語表示されないとか回避できます)

rootアカウントのままで必要なものをインストールしておきましょう
yum -y install make
yum -y install gcc
yum -y install flex
yum -y install bison
yum -y install libX11-devel
yum -y install freetype-devel
コピペして実行権限付けて実行するのが楽かも。

ここからは適当なユーザーアカウントに代わってください。
データの解凍とインストールを行います。
tar jxf wine-1.4.1.tar.bz2
cd wine-1.4.1
./tools/wineinstall
最初にyes途中でrootアカウントのパスワードを聞かれますので入力してください。
インストールは相当時間がかかると思いますので1~2時間放置でもいいかもしれません。
インストールが終わったら、
winecfg
を実行します。インストールダイアログが表示されるのでinstallとかOKとか押します。
1分ほどするとwinecfgのインストールが終わり、画面が表示されます。
多分英語表示と思います。(最後まで設定画面の日本語化はわからなかったなぁ)
winecfgの文字がいびつになって読みにくい場合はGraphicsタブの下方にあるScreen resolutionスライダを少し大きくしてwinecfgを立ち上げなおすとよいと思います。

winecfgでやることといえば、wineで動かすプログラムのフォント設定です。
Desktop Integrationタブに移動してAppearance内のItemの項目を変えると、
右側のFontが選べるものが4項目あります。
そこで日本語フォントを選ぶのですが、日本語フォントが出てこないと思います。
フォントは自分のホームディレクトリの中のwineのフォントディレクトリに入れないといけません。
場所はこちら。
~/.wine/drive_c/windows/Fonts
「さざなみフォント」とかをダウンロードして、解凍してコピペしましょう。

入手先はこちら
http://sourceforge.jp/projects/efont/

winecfgを立ち上げなおすとコピペしたフォントの名前が出てくると思います。
フォント名の日本語が表示されてない場合は「KDEシステム設定内」の「国と言語」を確認しましょう。
ここが既定になっているとwineが英語と判断して日本語が表示されません。
環境変数でLANG=とか設定してもダメで、LANG="ja_JP.UTF-8" wine winecfg
とかして起動してもできませんでした。

フォント名が日本語で表示されて、4項目の設定が終わるとWindowsプログラムのインストールです。
CentOSにWindowsの実行ファイルをコピーして、アイコンの上で右クリックして「Wine Windows Program Loaderで開く」をクリックします。
何事もなかったようにインストーラーが起動すればとりあえずOKです。
文字化けが!となる時は、プログラム側であえて特定のフォントを指定しているため対応するものを~/.wine/drive_c/windows/Fontsに入れなければなりません。
対応するものを探すのが大変です。
最初にWindows機のC:\Windows\Fonts内のデータを丸ごと送ってしまえば良かったかとも思ってしまいます。(ライセンス的にどうなんでしょ)

インストールが終わるとスタートメニュー内にwineという項目ができるので、その中にあるインストールしたプログラムの項目をクリックしましょう。
起動しましたよ…ね?
文字のサイズやDPIなどはwinecfgで微調整しましょう。

使ってみた感じは少し重たい感じもするけど、ほぼ同じ感覚で使えてますね。
心配した通信関係も問題なさそう。
Windows8ヤダーってひとはもうCentOS+wineで良いじゃないかって思っちゃった。
インストールフォルダをのぞいてみたらmono2.0とか有ったので.NetFramework関係もいけるかも?と思ったけどやってません。

思ったより長くなったな…

編集後記

1時間くらいntpの設定ではまってたのが大きいなー
vi /etc/sysconfig/clock
UTC=no
の所を
UTC=false
ってしてたよ…

これでVPS使ってOSがLinuxでもWindowsプログラムが動かせる!
Linuxプランの方が安いし~、Webサーバーとか兼用できるし!という伏線。

CentOS 5.5+mono 2.8+xsp 2.8+mod_mono 2.8インストールその5

2010-11-24 21:32:30 | Filesystem.log2

さて続きです。
今回はmod_monoをインストールしましょう。
[root@testmono ~]#
となっている状態からスタートです。

まずはmod_monoから入手しましょう。
[root@testmono ~]# wget http://ftp.novell.com/pub/mono/sources/mod_mono/mod_mono-2.8.tar.bz2
つぎに解凍します。
[root@testmono ~]# tar -xjvf mod_mono-2.8.tar.bz2
そしてmod_monoディレクトリに移動します。
[root@testmono ~]# cd mod_mono-2.8
そしてお決まりのconfigureです。
[root@testmono mod_mono-2.8]# ./configure
まー、なんというか、ここまではお決まりのパターンとなってきましたね。
configureの方もエラーなく終了したのでmakeとmake installやってみましょう。
[root@testmono mod_mono-2.8]# make
[root@testmono mod_mono-2.8]# make install
これもあっさり完了。

ここからはhttpdにmonoを連携するように設定ファイルを書き換えます。
[root@testmono mod_mono-2.8]# vi /etc/httpd/conf/httpd.conf
と入力してviでhttpd.confを読み込みます。
monoのサンプルを動かすために一番最後に次の文章を追加しましょう。
Include /etc/httpd/conf/mod_mono.conf
Alias /test "/usr/local/lib/xsp/test"
MonoApplications "/test:/usr/local/lib/xsp/test"
<Location /test>
SetHandler mono
</Location>
MonoServerPath /usr/local/bin/mod-mono-server4

httpd.confの設定を書き換えたのでhttpdを一旦止めて再スタートします。
[root@testmono mod_mono-2.8]# /etc/init.d/httpd restart
これでhttp://192.168.0.4/testにアクセスすればサンプルページが表示されるはず…
なのですが出てきません。
これにはSELinuxというセキュリティー関係の制御により動かないことが原因なのです。
例によって外部公開はしないので切りましょう。
[root@testmono mod_mono-2.8]# vi /etc/sysconfig/selinux
としてviで読み込み後、
SELINUX=enforcing

SELINUX=disabled
と変更します。
これは再起動が必要な設定なので
[root@testmono mod_mono-2.8]# reboot
として再起動します。
再起動したのを見計らってhttp://192.168.0.4/testにアクセスすると
monoのサンプルページが出てくるはずです。

一通り見てみようとSome ASP.NET Samples>2.0>Menu>menu2をクリックすると
Server Error in '/test' Application
--------------------------------------------------------------------------------
gdiplus.dll
Description: HTTP 500. Error processing request.
Stack Trace:
System.DllNotFoundException: gdiplus.dll
  at (wrapper managed-to-native) System.Drawing.GDIPlus:GdiplusStartup (ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
  at System.Drawing.GDIPlus..cctor () [0x00000] in :0 
--------------------------------------------------------------------------------
といったエラーが早速出てきます。
入れたはずのgdiplusが見つかりませんとのこと。
きっとパスの指定がいるんだなーということで

再度ログインします。
[root@testmono ~]#
共有ライブラリの読み込み設定をviで読み込みます。

[root@testmono ~]# vi /etc/ld.so.conf
/usr/local/lib
を追記し保存します。


設定ファイルを再読み込みします。

[root@testmono ~]# ldconfig

httpdを再起動します。
[root@testmono ~]# /etc/init.d/httpd restart
さて、先ほどエラーが出たページが…うまく表示できているはず!

httpd.confのところで特に説明もなく
MonoServerPath /usr/local/bin/mod-mono-server4
としてますが、
MonoServerPath /usr/local/bin/mod-mono-server2
MonoServerPath /usr/local/bin/mod-mono-server
で.Net~2とか選べるってことでしたっけ

さて、これで一通りMono 2.8系のインストールは完了ですね。


CentOS 5.5+mono 2.8+xsp 2.8+mod_mono 2.8インストールその4

2010-11-21 00:17:46 | Filesystem.log2

今回はxspのインストールです。

ログインして以下の状態からです。
[root@testmono ~]#

まずはApacheのインストールからです。
[root@testmono ~]# yum -y install httpd
そしてここで気を抜いてはいけません。
[root@testmono ~]# yum -y install httpd-devel
として開発版も入れておきましょう。

一応動作確認しておきましょうか。
[root@testmono ~]# /etc/init.d/httpd start
としてWebサーバーをスタートします。
ちなみに止めたい場合は
[root@testmono ~]# /etc/init.d/httpd stopt
いちいち動かすのが面倒なので起動と同時に動かしたい場合は
[root@testmono ~]# chkconfig httpd on
と入力します。
きどうと同時に動かしたくなくなった場合は
[root@testmono ~]# chkconfig httpd off
です。
さて、ここでhttp://192.168.0.4にウェブブラウザでアクセスすると
画面が表示されるはずなのですが出てきません。
原因はCentOSのファイアーウォールが働いて遮断されているのです。
とりあえず外部公開は目指してないのでここではファイアーウォールを切ります。
[root@testmono ~]# /etc/init.d/iptables stop
と入力します。
(外部公開目指している人はiptablesをちゃんと勉強して設定してネ)
再度http://192.168.0.4/にアクセスすると
Apache 2 Test Pageというページが出てくると思います。
いちいち止めるのは面倒だーという人は
[root@testmono ~]# chkconfig iptables off
と入力すれば起動時にスタートしませんです。
これでWebサーバー機能の追加は完了です。

ではxspのインストールをやっていきましょう。
[root@testmono ~]# wget http://ftp.novell.com/pub/mono/sources/xsp/xsp-2.8.1.tar.bz2
としてファイルをダウンロードします。
[root@testmono ~]# tar -xjvf xsp-2.8.1.tar.bz2
として解凍します。
xsp-2.8.1ディレクトリに移動してconfigureをやってみます。
[root@testmono ~]# cd xsp-2.8.1
[root@testmono xsp-2.8.1]# ./configure
なんと、エラーが出ずに完了してしまいました。
では…makeしてみましょう。
[root@testmono xsp-2.8.1]# make

Your sqlite3 version is old - please upgrade to at least v3.5.0!

Unhandled Exception: System.EntryPointNotFoundException: sqlite3_next_stmt
  at (wrapper managed-to-native) Mono.Data.Sqlite.UnsafeNativeMethods:sqlite3_next_stmt (intptr,intptr)
  at Mono.Data.Sqlite.SQLiteBase.ResetConnection (Mono.Data.Sqlite.SqliteConnectionHandle db) [0x00000] in :0
  at Mono.Data.Sqlite.SQLiteBase.CloseConnection (Mono.Data.Sqlite.SqliteConnectionHandle db) [0x00000] in :0
  at Mono.Data.Sqlite.SqliteConnectionHandle.ReleaseHandle () [0x00000] in :0
  at System.Runtime.InteropServices.CriticalHandle.Dispose (Boolean disposing) [0x00000] in :0
  at System.Runtime.InteropServices.CriticalHandle.Dispose () [0x00000] in :0
  at Mono.Data.Sqlite.SQLite3.Close () [0x00000] in :0
  at Mono.Data.Sqlite.SqliteConnection.Close () [0x00000] in :0
  at Mono.Data.Sqlite.SqliteConnection.Open () [0x00000] in :0
  at App.Main () [0x00000] in :0
make[3]: *** [dbpage1.sqlite] エラー 1
make[3]: ディレクトリ `/root/xsp-2.8.1/test/1.1/webcontrols' から出ます
make[2]: *** [all-recursive] エラー 1
make[2]: ディレクトリ `/root/xsp-2.8.1/test/1.1' から出ます
make[1]: *** [all-recursive] エラー 1
make[1]: ディレクトリ `/root/xsp-2.8.1/test' から出ます
make: *** [all-recursive] エラー 1

エラーで止まってしまいました。
上のほうに書いてますがsqliteのバージョンが3.5以上必要とのことです。
[root@testmono xsp-2.8.1]# sqlite3 -version
と入力してみると
3.3.6
の数字が!こりゃ駄目だな。
ということでxspのインストールは一時中断してsqliteのバージョンを上げていきましょう。

sqliteのダウンロードはこちらのページから
http://www.sqlite.org/download.html
ホームディレクトリに移動後sqlite-3.7.3.tar.gzをダウンロードしましょう。
[root@testmono xsp-2.8.1]# cd ~
[root@testmono ~]# wget http://www.sqlite.org/sqlite-3.7.3.tar.gz
バージョンは3.7.3なのでこいつならいけるはずです。
解凍します。
[root@testmono ~]# tar -xzvf sqlite-3.7.3.tar.gz
こんかいは3.3.6が既にインストールされているのでアップグレードインストールです。
そのためにはrpmを作ってインストールします。(これがまた面倒なんだ)

[root@testmono ~]# cd /usr/src/
に移動します。
redhatディレクトリを作り移動します。
[root@testmono src]# mkdir redhat
[root@testmono src]# cd redhat
SOURCESとSPECSディレクトリを作成します。
[root@testmono redhat]# mkdir SOURCES
[root@testmono redhat]# mkdir SPECS

ダウンロードしておいたsqlite-3.7.3.tar.gzファイルをSOURCESディレクトリにコピーします。
[root@testmono redhat]# cp ~/sqlite-3.7.3.tar.gz ./SOURCES/
sqliteの解凍しておいたファイルの中からspec.templateをSPECSディレクトリにコピーします。
[root@testmono redhat]# cp ~/sqlite-3.7.3/spec.template ./SPECS/
SPECSディレクトリに移動します。
[root@testmono redhat]# cd SPECS/

spec.templateは編集する必要があるのでviで編集をします。
[root@testmono SPECS]# vi spec.template
aを押して編集モードに入った後、
編集する場所は最初のほうの
%define version SQLITE_VERSION

%define version 3.7.3

中盤の
%setup -q -n %{name}

%setup -q -n %{name}-%{version}

最終行
%doc doc/*
を削除。

ESCボタンを押してShift+ZZで保存したらいよいよrpmの作成に取り掛かりましょう。
rpm作成コマンドがrpmbuildなのでこれを使いましょう。
[root@testmono SPECS]# rpmbuild -bb spec.template
-bash: rpmbuil: command not found
そーいえばrpmbuildインストールしてませんでしたね。
ということでyumでさくっとインストールしましょう。
[root@testmono SPECS]# yum -y install rpm-build
画面がずらーっと流れて止まったらrpmファイルの完成です。

一つ階層をあがってlsを入力してみるとディレクトリが増えてます。
[root@testmono SPECS]# cd ../
[root@testmono redhat]# ls
BUILD  RPMS  SOURCES  SPECS  SRPMS
RPMSの中に作ったrpmファイルがあるので移動してみます。
[root@testmono redhat]# cd RPMS/
lsを入力してみるとさらにディレクトリがあることがわかります。
[root@testmono RPMS]# ls
athlon  geode  i386  i486  i586  i686  noarch
名前からするとCPUごとに分かれてできるのかな?といった感じがします。
ちなみに私の環境ではi386ディレクトリにrpmファイルがありました。
[root@testmono RPMS]# cd i386/
[root@testmono i386]# ls
sqlite-3.7.3-1.i386.rpm  sqlite-devel-3.7.3-1.i386.rpm
こんな感じです。
ここでやっとアップグレードインストールですよ。
[root@testmono i386]# rpm -Uvh sqlite-3.7.3-1.i386.rpm
準備中...                ########################################### [100%]
   1:sqlite                 ########################################### [100%]
[root@testmono i386]# rpm -Uvh sqlite-devel-3.7.3-1.i386.rpm
準備中...                ########################################### [100%]
   1:sqlite-devel           ########################################### [100%]
ドキドキしながらsqliteのバージョンを確認してみましょう。
[root@testmono i386]# sqlite3 -version
3.7.3
ということで無事に3.5の壁を越えてます。
さて、xspの方に戻りますか。
[root@testmono i386]# cd ~/xsp-2.8.1
と入力して移動します。
環境が変わったのでconfigureからやり直します。
[root@testmono xsp-2.8.1]# ./configure
次にmake
[root@testmono xsp-2.8.1]# make
エラーが出ずに終わったらmake install
[root@testmono xsp-2.8.1]# make install
エラーが出ずに終わったらxspのインストールは完了です。


 


CentOS 5.5+mono 2.8+xsp 2.8+mod_mono 2.8インストールその3

2010-11-07 23:30:27 | Filesystem.log2

今回はlibgdiplus2.8のインストールです。
面倒ですが難しくないのでさらりと行きましょう。

さて、下記のようになっている状態からのスタートです。
[root@testmono ~]#
何がともあれ物を手に入れないといけないのでwgetでダウンロードします。
[root@testmono ~]#wget http://ftp.novell.com/pub/mono/sources/libgdiplus/libgdiplus-2.8.tar.bz2
つづけて解凍します
[root@testmono ~]#tar -xjvf libgdiplus-2.8.tar.bz2
比較的早く終わるのでディレクトリ内に移動します
[root@testmono ~]#cd libgdiplus-2.8
ここでいつものパターンのConfigureとmakeとmake installをするわけです。
まー、素直にいかないわけなんですけどね。
[root@testmono libgdiplus-2.8]#./configure

checking for pkg-config... no
configure: error: You need to install pkg-config
というエラーでストップするので
[root@testmono libgdiplus-2.8]#yum -y install pkg-config
とか入力すると、
No package pkg-config available.
そんなパッケージないよ??
といわれるのはmono2.4の頃に既にやっているので
[root@testmono libgdiplus-2.8]#yum -y install pkgconfig
と入力します。
インストールが終了したら
[root@testmono libgdiplus-2.8]#./configure
と入力してみましょう。
さてドウナリマスカ。
checking for BASE_DEPENDENCIES... configure: error: Package requirements (glib-2.0 >= 2.2.3) were not met:

No package 'glib-2.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
こんなんでてきました。
上の方はglib-2.0が無いよって言ってますね。
下の方はPKG_CONFIG_PATHを調節してねって書いてますね。
もしprefixつけずにインストールしたのなら・・・だそうです。
prefixつけてインストールするお洒落さんはそもそもmonoのインストールで迷ったりしませんよね?
まー、うちは開発元に忠実というか、そんなこと言うのならどこかに書いておいてよーといった感じです。
作業を続けましょう。glib-2.0のインストールです。
まぁ、素直にyum -y install glib-2.0とかやってもやっぱり見つからないので
次のようにしましょう。
[root@testmono libgdiplus-2.8]# yum -y install glib2-devel

もう一つはPKG_CONFIG_PATHのほうです。
これはホームディレクトリの.bashrcファイルに追記する必要があります。
[root@testmono libgdiplus-2.8]# vi ~/.bashrc
と入力して編集します。
最終行あたりに
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
と入力します。
Shift+ZZと押してセーブします。

ここで忘れてはいけないのが環境設定ファイルの再読み込みです。
[root@testmono libgdiplus-2.8]# source ~/.bashrc
とすることで先ほどの設定が読み込まれます。

さて、久しぶりのconfigureですがどうでしょう。
[root@testmono libgdiplus-2.8]#./configure

checking for libpng12... no
checking for png_read_info in -lpng... no
configure: error: *** libpng12 not found. See
http://www.libpng.org/pub/png/libpng.html.
なんか出てきましたね…
libpng12が無いとのことです。
yum -y install libpng12とかlib-png12とか打ち込んでも解決しません。
正解はlibpng-devel(12どこ行った!?)
[root@testmono libgdiplus-2.8]# yum -y install libpng-devel
と入力するとインストールが完了します。
さてもう一度~
[root@testmono libgdiplus-2.8]#./configure
と入力すると…
configure: error: "Failed to compile with X11/Xlib.h include.  You must fix your compiler paths"
と出てきました。
エラーメッセージを分析すると
X11のXlib.hのインクルードに失敗したからパスを修正してください。という感じです。
だがしかし、そもそもX11って確かインストールじたいしてないのね。
ではX11を入れてみましょう。
・・・・まぁ。今までの流れからしてyum -y install X11トカXlibとかlibX11とかじゃダメでして。
[root@testmono libgdiplus-2.8]# yum -y install libX11-devel
となります。
改めて
[root@testmono libgdiplus-2.8]#./configure
とするとさっきよりかは進んで

configure: error: Cairo requires at least one font backend.
                  Please install freetype and fontconfig, then try again:
                 
http://freetype.org/  http://fontconfig.org/

configure: error: ./configure failed for cairo

というところでエラーで止まります。
さて、メッセージを読んでみるとfreetypeとfontoconfigを入れてくれとあります。
もー先に正解言っちゃうよfreetype-develとfontconfig-develダヨ!!
ということで
[root@testmono libgdiplus-2.8]# yum -y install freetype-devel
[root@testmono libgdiplus-2.8]# yum -y install fontconfig-devel
さてそろそろ行きそうな感じがしますがどうでしょうか。
[root@testmono libgdiplus-2.8]#./configure
---
Configuration summary

   * Installation prefix = /usr/local
   * Cairo = 1.6.4 (internal)
   * Text = cairo
   * EXIF tags = No. Get it from http://libexif.sourceforge.net/
   * Codecs supported:

      - TIFF: no (Get it from http://www.libtiff.org/)
      - JPEG: no (Get it from http://freshmeat.net/projects/libjpeg)
      - GIF: no (See http://sourceforge.net/projects/libgif)
      - PNG: yes
      NOTE: if any of the above say 'no' you may install the
            corresponding development packages for them, rerun
            autogen.sh to include them in the build.

おお。エラーなしで終了しました。
しかしいくつか気になる部分もあります。
上の赤字の部分です。
画像関係の名前でNOがついている…ということは、
今のままだとJPEGやGIFは使えないってことにならないかい?
それじゃ困るので入れてあげましょう。
libpng-develを既に経験しているのでjpegとtiffとexifは同じ方法で大丈夫です。
[root@testmono libgdiplus-2.8]# yum -y install libjpeg-devel
[root@testmono libgdiplus-2.8]# yum -y install libtiff-devel
[root@testmono libgdiplus-2.8]# yum -y install libexif-devel
でインストールが完了します。
じゃーgifは??libgif-develじゃないくてgiflib-develなんですねこれが残念ながら。
gifだけぎゃくー
この変化球具合はなんなんでしょうか。
上のメッセージのgifのココミロ的URLにはlibgifって書いているのにねー
[root@testmono libgdiplus-2.8]# yum -y install giflib-devel
さて一通りインストールがおわったら
[root@testmono libgdiplus-2.8]#./configure
です。
   * Installation prefix = /usr/local
   * Cairo = 1.6.4 (internal)
   * Text = cairo
   * EXIF tags = yes
   * Codecs supported:

      - TIFF: yes
      - JPEG: yes
      - GIF: yes
      - PNG: yes
      NOTE: if any of the above say 'no' you may install the
            corresponding development packages for them, rerun
            autogen.sh to include them in the build.


全部にYESがついてるのを確認して
[root@testmono libgdiplus-2.8]#make
[root@testmono libgdiplus-2.8]#make install
とします。
苦労した甲斐あってあっさり終了します。(makeはちょっと時間がかかるけどね)

今回はなんというかパッケージ名を知っているかどうかが運命の分かれ目ですね。



CentOS 5.5+mono 2.8+xsp 2.8+mod_mono 2.8インストールその2

2010-10-26 23:28:18 | Filesystem.log2

今回はmono2.8のインストールとC#4.0の動作確認です。

さて、下記のようになっている状態からのスタートです。
[root@testmono ~]#
とにかくmono2.8本体を入手する必要があるので、
http://ftp.novell.com/pub/mono/sources-stable/
ここから入手しましょう。
mono2.4の時も使いましたが今回もyumが大活躍です。
ホームページからコマンドベースでデータをダウンロードするにはwgetコマンドを使用します。
[root@testmono ~]#wget
とか打ち込んでも
-bash: wget: command not found
とか表示されます。意味はそのまま「そんなコマンドないですよ。」
無ければインストールということで
[root@testmono ~]#yum -y install wget
とか入れてみましょう。
Complete!
が表示されたら
[root@testmono ~]#wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.8.tar.bz2
と入力するとmono2.8のダウンロードが開始されます。
ダウンロードが終了したらデータの解凍をするのですが、
解凍ソフトがOS最小構成なのでインストールされていません。
[root@testmono ~]#yum -y install bzip2
と入力して解凍プログラムをインストールしましょう。
インストールが終わったら
[root@testmono ~]# tar -xjvf mono-2.8.tar.bz2
と入力してダウンロードしたデータを解凍しましょう。
画面がずばーっと表示されます。

それが終わったら解凍したデータのいるディレクトリに移動します。
[root@testmono ~]# cd mono-2.8

さて、ここからがmonoのインストール作業なわけです。
うまくいけばコマンド自体はconfigureとmakeとmake installで終わるのですが、
最小構成のためいろいろ足りなくてエラーが出てきます。
やっぱり今回もエラーを拾いながらいきましょう。

では
[root@testmono ~]# ./configure
と打ち込んでみましょう。
画面が少し流れて止まります。
画面を見ると
checking for gcc... no
checking for gcc... gcc
checking for C compiler default output file name...
configure: error: in `/root/mono-2.8':
configure: error: C compiler cannot create executables
See `config.log' for more details.
と出てきてます。
エラーを読むと、「実行ファイルができなかったよ」的な内容です。
上の方を見るとgcc...noとなっているのでgccが足りないようです。
じゃ。ということで、
[root@testmono ~]# yum -y install gcc
としてみましょう。
インストールが終わったら再度
[root@testmono ~]# ./configure
さっきより進んだ!っと思いきややはりエラーで止まります。
今度のエラーは親切で
configure: error: You need to install g++
となっています。
そこで
[root@testmono ~]# yum -y install g++
とかやってみるのですが、
No Matches found
とか言われてしまいます。
実はこれは親切と見せかけた不親切で
[root@testmono ~]# yum -y install gcc-c++
としないといけません。
インストールが終了して、
[root@testmono ~]# ./configure
とすると、今度のエラーは
configure: error: You need to install bison
「bisonインストールしてね」となってます。
実はこれは親切と見せかけて本当に親切。。。というかまともなエラーです。
[root@testmono ~]# yum -y install bison
でOKです。
インストールが終わったら懲りずに
[root@testmono ~]# ./configure
を入力します。
configure: error: msgfmt not found. You need to install the 'gettext' package, or pass --enable-nls=no to configure.
ひたすらエラーが出てきます。
ここではどうやらgettextパッケージをインストールしてくれということなので、
[root@testmono ~]# yum -y install gettext
とするとうまく入ってくれます。
だいぶエラーが出なくなってきたのでそろそろいくかな?
[root@testmono ~]# ./configure
を入力!
今度は長く続いているぞ…
ということでエラーが出ずに終わりました。

        mcs source:    mcs
        olive source:
   Engine:
        GC:            sgen and bundled Boehm GC with typed GC and parallel mark
        GLIB:          embedded
        TLS:           __thread
        SIGALTSTACK:   yes
        Engine:        Building and using the JIT
        oprofile:      no
        BigArrays:     no
        DTrace:        no
        Parallel Mark: yes
        LLVM Back End: no (dynamically loaded: no)

    Libraries:
        Moon Profile:  no
        MonoTouch:     no
        JNI support:   IKVM Native
        libgdiplus:    assumed to be installed
        zlib:

こんな感じで終わってます。
noがついているところは入れた方が良いのかなーとか思いながら次に進みましょう。
configureの次はmakeなのですが、
[root@testmono mono-2.8]# make
と入力すると
-bash: make: command not found
となって、やっぱり「コマンドガナイヨー」といわれます。
お決まりの
[root@testmono mono-2.8]# yum -y install make
とするとmakeコマンドがインストールされます。
さて、
[root@testmono mono-2.8]# make
画面がひたすら流れます。
画面の流れが止まったらいよいよインストールです。
[root@testmono mono-2.8]# make install
と入力してあげるとさらに画面が流れます。
時間がかかるので
[root@testmono mono-2.8]# make;make install
としてもいいです。
続けてコマンドを実行してくれます。
さて、画面が止まったらmono2.8のインストールは終了です。
試しにプログラムを作ってみましょう。
最小構成なのでviでプログラムを書きます。
[root@localhost mono-2.8]#vi test1.cs
と入力します。
aボタンを押して編集モードに入ります。
次のように入力します。
using System;
class TheWorld
{
static void Main(string[] args)
{
Console.WriteLine("Stop The World WRY");
}
}

入力が終わったらESCボタンを押してShift+Zを二回押して保存作業を行います。
[root@localhost mono-2.8]#mcs test1.cs
と入力してコンパイルします。
[root@localhost mono-2.8]#
と表示されたら終了してます。
実行するにはmonoを最初につけて
[root@localhost mono-2.8]#mono test1.exe
とします。
Stop The World WRY
と表示されれば成功です。(ちなみに上記サンプルは過去記事からのコピペ)
せっかくC#4.0対応した!って言っているので動作確認してみたいのが人の性でございます。
やってみましょう。ええ。やってみましょう。

http://www.atmarkit.co.jp/fdotnet/csharp4/csharp4_03/csharp4_03_02.html
を参考にソースコードを作成します。
[root@localhost mono-2.8]#vi test2.cs
として、編集モードに入った後に
using System;
using System.Threading.Tasks;
class TheWorldEnd
{
static void Main(string[] args)
{
var task1=Task.Factory.StartNew(()=>
{
for(int i=0;i<10;i++)Console.Write("WRY");
});
var task2=Task.Factory.StartNew(()=>
{
for(int i=0;i<10;i++)Console.Write("END");
});
Task.WaitAll(task1,task2);
Console.WriteLine("World End");
}
}
と入力して保存しましょう。
ドキドキしながら
[root@localhost mono-2.8]#mcs test2.cs

と入力すると
test2.cs(2,24): error CS0234: The type or namespace name `Tasks' does not exist in the namespace `System.Threading'. Are you missing an assembly reference?
Compilation failed: 1 error(s), 0 warnings

というメッセージが出てきてエラーで終了します。
エラーメッセージを読んでみると・・・・
System.ThreadingにTasksなんてのいないよ!!って言われてます。
まー、C#4.0ですから、今までの方法が通用しない可能性の方が高いわけで、
そうなると、考えられるのは何かオプションがつくのか?mcs自体が違うのか?
といったくらいしか思いつきません。
正解は後者で、C#4.0を使う場合はdmcsという別のコマンドになってしまいます。
[root@localhost mono-2.8]#dmcs test2.cs
と入力すると、今度はエラーは出ないことがわかります。
[root@localhost mono-2.8]#mono test2.exe
と入力すると実行です。
WRYWRYWRYWRYWRYWRYWRYWRYWRYWRYENDENDENDENDENDENDENDENDENDENDWorld End
と表示されたら動作確認OKです。

ちなみに、mcsコマンドは.Netの1.1で将来的に無くなるみたいです。
gmcsが2.0
smcsが2.1
dmcsが4.0
とのことですよー

さて、次回はlibgdiplus2.8です!


CentOS 5.5+mono 2.8+xsp 2.8+mod_mono 2.8インストールその1

2010-10-23 23:32:49 | Filesystem.log2

音楽聞きながらまったり進行で(挨拶)
とりあえずCentOS5.5を最小構成で入れるのですが、
言語選択→キーボード選択→HDD全部消して新規インストールと進んだ後
ネットワークの設定画面になるのですが、
ここはDHCPだと他からネットワーク越しに見る時に大変なので固定IPにしておいた方が良いでしょう。
うちの場合は
IPv4のIPに192.168.0.4
ネットマスクに255.255.255.0
IPv6はチェックを外してます。
ホスト名は適当にtestmonoとか入れてます。
ゲートウェィとDNSはネットワークにつながっているWindows機のコマンドプロンプトから
ipconfig /all
と入力して表示されたものを入れておけばよいでしょう。
後はすべてのチェックを外しながら次へ進んでいくだけ…
Desktop - Gnomeのチェックを外す画面では
今すぐカスタマイズするのほうを選んで次へボタンを押しましょう。
すべてのチェックを外して次へ。(日本語サポートは入れておいてもいいかも。)
次へを押すとHDDのフォーマットとOSのインストールが始まります。
うちのPCだとHDDのフォーマットを含めてOSのインストールは4分ほどで終わります。

ここからはリモート接続した方が人間的に都合がよいのでTera Termで作業をします。
VectorとかからTeraTermを入手してインストールします。
起動すると接続先を聞かれるのでホストの項目に
CentOSをインストールするときに指定したIPアドレスを入れます。
うちの場合は192.168.0.4ですね。
SSHをクリックしてOKを押すと・・・・
ユーザー名とパスフレーズを聞かれます。
暗号鍵が~とか聞かれると思うので上書きしてください。
ユーザー名:root
パスワード:インストールの時に設定したものを入力
すると下の画面のようになります。



とりあえずここまででOSインストールとリモート接続まで完了。
まぁ、ここまでは一般的な操作なので色々なホームページとかにも載っていると思います。
最小インストールをわざわざやるというのはあまりないかもしれないですが…

ふと思ったのですが、このまま長く書き連ねるより別記事にした方が良いか…と。
ということでこの記事はここで公開っと。


mono2.8単体では?

2010-10-22 02:35:15 | Filesystem.log2
昨日までの動いていた環境をあっさり消してOSからまた入れなおしてみた。
今回CentOS5.5は最小構成ではなくデフォルトのままインストール。
mono-2.8とlibgdiplus-2.6を入れてVisualStudio2010で作った
.Net Framework4の実行ファイルを動かしてみたら動かなかったです。
見た目的に無理っぽいというメッセージだったので調べてみたら本家のまだできてません!って所にいました。
Framework2は特に何も言われず動いてます…

追記
Framework4で作った実行ファイルでも実装されているものだけにしたら動きました。
ということでChartコントロールはダメでした。
あと、楕円とか丸とかのVB系のコントロールも。(これはmonoのVB関係のパッケージを入れたら動いたりしないのかなー)

C00D11ABとかさ。

2009-08-27 03:03:23 | Filesystem.log2
C00D11ABで悩んでいる人が多いようなので解決策。
Microsoft的には書き込み速度が速すぎるとか、
ドライブをクリーニングしてとか書いてますネ。
ちなみに、「空のディスクを準備してください」とか
「Cannot burn files to CD」とか「ディスクは書き込み禁止になっています。」とかも次の対処法になると思います。

1.ドライバ削除。
デバイスマネージャのDVD/CD-ROMドライブ内の該当するデバイスをダブルクリックして
ドライバタブの一番下に削除ボタンがありますよ。
2.再起動すると(きっと)自動的にドライバが入ると思います。

一応検索で引っかかってしまった人のために英語でも。

1.Delete Driver
Open "Device Manager".
Expand "DVD/CD-ROM Drive" node.
Double Click appropriate drive.
Click Driver tab and Delete button.

2.Restart your PC.
Driver automatically reinstall.

適当な英語でごめんなさい(笑)
ちなみにこの現象、検索してみると見事にMicrosoftの答えのコピペが多くて笑わさせていただきました。
あと、CD-RWじゃなくてCD-R使えよ!と言うのにもね。
レジストリ神話も健在でいきなりレジストリ編集とかもありました。
しかし、何のタイミングでこうなったのか気になっているんですよねー
超高速で1万件のエラーログとイベントログを読破したのですがそれらしい物はなさそうですし・・・

mono2.2いんすとぅるーう→mono2.4に変更さ。

2009-03-29 02:54:04 | Filesystem.log2

さて、CentOS5.2をインストール完了したところから再開です。(挨拶)
そして時間は午前2:55
BGMは引き続き十二国記(ただしピアノアレンジ系)。
再起動が完了すると
localhost login:
と出てくるので rootと入力してEnter。
Password:
と出てくるのでインストールのときに設定したパスワードを入力。
忘れたらもう一度OSのインストールからやりなおし。
そうそう、インストールのときにマウスが使えてましたが、
最小構成しか入れてないのでキーボードのみの操作となります。

さて、
[root@localhost ~]#
と表示されているでしょうか。
表示されてなかったらもう一度OSのインスt(略

CentOSの便利なところはyumというコマンドが使えるところです。
あのファイルがない!っという時にyum ○○と打ち込めばネットワーク越しにインストールできます。
入手元が混雑していると時間がかかるので軽いところから入手できるように、『自動的に軽いところから入手できますよ』プログラムをインストールします。
[root@localhost ~]#yum -y install yum-fastestmirror
yum-fastestmirrorをinstallする?もちろん答えはYes。と言った感じです。
-yを抜くとYesかNoか聞かれます。
(事実上ここまでお世話になった山形大学とのお別れになります。)
Complete!が表示されるとインストール完了です。

とりあえずwgetというコマンドも必要なことですし、yumの練習もかねて次のようにしてみましょう。
[root@localhost ~]#yum -y install wget
wgetとはネット上に公開されているファイルをダウンロードするプログラムです。
具体的にはmono2.2の関連ファイルを入手するために使います。

さて、ここからのスタンスはエラー→解決という方法でいきたいと思います。
エラーメッセージを文字化することで検索にも引っかかりますしね。
うまくいく方法だけを書くのは簡単ですがそれだとデータベースとしての価値は低いですからね。(無いといってもいいかも)

ご飯が炊けたようなので一時中断(午前3:20)
ご飯の方は無難に卵スープになりました。
ご飯を食べながらmono projectのページを見ていると最新版はmono2.4みたいですね。
と言うことで、mono2.4にblogのタイトルを変更。
ホームページはこちら
http://www.mono-project.com/Main_Page
downloadタブをクリックします。
右側の方にMono 2.2 Sourceという項目があるのでクリックすると表示されるのはmono2.4となります(笑)

さて再開しますか。(午前4:20)
ファイルをWebサイトからgetしましょう。
[root@localhost ~]#wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.4.tar.bz2
と入力します。
[root@localhost ~]#tar -xjvf mono-2.4.tar.bz2
と入力して解凍します。
tar: bzip2: Cannot exec: No such file or directory
とか出てきましたね。
解凍ソフトbzip2が無いようです。(そりゃー最小構成ですから!)
じゃ、yumで入れましょう
[root@localhost ~]#yum -y install bzip2
と入力します。
Complete!が出たら再度
[root@localhost ~]#tar -xjvf mono-2.4.tar.bz2
と入力します。
画面上にずヴぉぁーっと文字がスクロールしていったら成功です。
解凍が完了するとディレクトリができてその中に解凍されたファイルがあります。

[root@localhost ~]#cd mono-2.4
と入力すると
[root@localhost mono-2.4]#
となります。
[root@localhost mono-2.4]#ls
と入力すると解凍されたファイルを見ることができます。
ファイルの中にconfigureというものが有ると思います。
次はコレを使います。インストールする前の手続きみたいな感じです。

[root@localhost mono-2.4]#./configure
と入力します。
configure: erro: C compiler cannot create executables
というエラーが表示されます。
C言語のコンパイラが見つからないよーといった具合です。(なんてったって最小構成)
エラーの少し上を見るとgccとか言う項目を見ていることが分かるので
gcc関係を見ていてエラーが出たんだと理解します。
無ければ入れようよということで、
[root@localhost mono-2.4]#yum -y install gcc
とします。ちょっとファイルサイズが大きいので待ちます。
※BGMが神無月の巫女にかわりました。
Complete!が表示されたら
[root@localhost mono-2.4]#./configure
と再度入力します。
さっきよりは進みますがエラーが出ます。
configure: error: You need to install bison
bisonを入れる必要があるよってことです。
例によって
[root@localhost mono-2.4]#yum -y install bison
と入力します。
Complete!と出たら
[root@localhost mono-2.4]#./configure
と入力します。
またもやエラーが出てきます。
configure: error: msgfmt not found. You need to install the 'gettext' package, or pass --enable-nls=no to configure.
msgfmtが見つからないとエラーが出てきます。
gettextパッケージを入れるか--enable-nls=noってconfigureの後につけて無視するようにしてねってことです。

[root@localhost mono-2.4]#yum -y install gettext
と入力します。
gettextの中にmsgfmtが入っているって事でしょう。
Complete!が表示されたら
[root@localhost mono-2.4]#./configure
と入力してみましょう。
すると、
configure: error: You need to install pkg-config
と出てきます。
pkg-configを入れてよってことなので
[root@localhost mono-2.4]#yum -y install pkg-config
と入力します。
すると
No package pkg-config available.
と表示されます。
そんなパッケージ無いよ?ってことです。
実は、ハイフンが必要なくて
[root@localhost mono-2.4]#yum -y install pkgconfig
なのです。
Complete!が表示されると
[root@localhost mono-2.4]#./configure
としてみます。
結構進むようになりましたが、やはりエラーが出てきます。
checking for BASE_DEPENDENCIES... configure: error: Package requirements (glib-2.0 >= 1.3.11) were not met: No package 'glib-2.0' found
glib-2.0ってのが見当たらないよ!ってことなので、
[root@localhost mono-2.4]#yum -y install glib
とします。
Complete!が表示されたら
[root@localhost mono-2.4]#./configure
としてみます。
さっきと同じエラーが表示されます。
もしやバージョンまで入れないとだめなのか?ってことで(しかもハイフンを除いて)
[root@localhost mono-2.4]#yum -y install glib2
としてみるが既にインストールされてますよってメッセージが。
実は更に-develを後ろに付け足してglib2-develとする必要があります。
このあたりの分かりにくさが普及の課題ですね。
[root@localhost mono-2.4]#yum -y install glib2-devel
Complete!が出たら
[root@localhost mono-2.4]#./configure
としてみます。
すると今度はエラー無く終了するでは有りませんか。
長かったですが、インストールの下準備が完了したのでいよいよインストール段階に突入です。
[root@localhost mono-2.4]#make
と入力します。
-bash: make: command not found
と表示されます。
makeプログラムを入れてなかったので(というか最小構成ですから)
[root@localhost mono-2.4]#yum -y install make
と入力します。
Complete!が表示されたらもう一度
[root@localhost mono-2.4]#make
と入力します。
画面に色々表示されたら成功です。
待ちます。(午前5:29)
終わりました。(午前5:51)
いよいよインストールです。
[root@localhost mono-2.4]#make install
と入力し待ちます。(午前5:51)
終わりました。(午前5:55)
動くか試してみましょう。
最小構成なのでviでプログラムを書きます。
[root@localhost mono-2.4]#vi test1.cs
と入力します。
aボタンを押して編集モードに入ります。
次のように入力します。
using System;
class TheWorld
{
static void Main(string[] args)
{
Console.WriteLine("Stop The World WRY");
}
}

入力が終わったらESCボタンを押してShift+Zを二回押して保存作業を行います。
[root@localhost mono-2.4]#mcs test1.cs
と入力してコンパイルします。
[root@localhost mono-2.4]#
と表示されたら終了してます。
実行するにはmonoを最初につけて
[root@localhost mono-2.4]#mono test1.exe
とします。
Stop The World WRY
と表示されれば成功です。(午前6:10)
OSインストールからすると食事時間も入れて5時間くらいかかってますが、
スクリプトでやっちゃったら放置できますし、OSインストールを含めても1時間かからないんじゃないですかね。
今日はお仕事なので少し寝ないと。
ちなみにコレ本業とは全然関係ないんですよね。