2010年7月25日日曜日

VirtualBox上でWebアプリケーションサーバ

VirtualBox上にDebian lennyを最小構成でインストールする(Bridge接続)。


  1. SunのJDKのインストール

  2. /etc/apt/source.listにnon-freeを追記。

    # aptitude update
    # aptitude install sun-java6-jdk


  3. Tomcat5.5のインストール


  4. # aptitude install tomcat5.5

    以下のようにディレクトリを新規作成する。

    # mkdir /usr/share/tomcat5.5/webapps/ROOT
    # mkdir /usr/share/tomcat5.5/webapps/ROOT/WEB-INF

    web.xmlとindex.htmlを作成する。
    /usr/share/tomcat5.5/webapps/ROOT/WEB-INF/web.xmlは下記の最小の内容で動作はする。
    <!DOCTYPE web-app PUBLIC
    “-//Sun Microsystem, Inc.//DTD Web Application 2.3//EN”
    http://java.sun.com/dtd/web-app_2_3.dtd>
    <web-app></web-app>

    /usr/share/tomcat5.5/webapps/ROOT/index.htmlは適当にry)

  5. Tomcatを80番ポートで動作させる

  6. /etc/tomcat5.5/server.xmlの以下のコメント文の下のConnector要素のport属性を80に修正する。

    <!-- Define a non-SSL HTTP/1.1 Connector on port 8180 -->
    <!-- Define an AJP 1.3 Connector on port 8009 -->

  7. TomcatのSSL設定

  8. 下記のコマンドで鍵の生成。

    # keytool –genkey –alias tomcat –keyalg RSA

    鍵生成時のユーザディレクトリに作成されるので/etc/tomcat5.5など適当な場所に移動しておく。
    ※パスワードは"changeit"
    コメント文の下のConnector要素のコメントアウトを外す。
    <!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
    port属性を443に修正し、keystoreFile属性を追加する(keystoreFile=”/etc/tomcat5.5/.keystore”)。

  9. DNSサーバ

  10. dnsmasqで運用する。

    # aptitude install dnsmasq

    /etc/hostsに下記のようにサーバにドメイン名を割り付ける(192.168.0.12がサーバアドレスの場合)。
    192.168.0.12 www.debian.co.jp www

  11. Windowsクライアントの設定

  12. DNSサーバを登録してドメイン名でサーバにアクセスできるようにする。ネットワークデバイスの設定から下記のように辿り、DNSを追加する。

    1. インターネット プロトコル バージョン 4 (TCP/IPv4)

    2. プロパティ

    3. 詳細設定

    4. DNSタブ

    5. 最優先DNSとして「192.168.0.12」を追加


2010年3月18日木曜日

Debian lenny で friio

以前Ubuntuでビルドしたバイナリをそのまま転用。2.6.26-2-686では問題無く動きます。recfriioについては下記のパッケージが必要。

  • libusb-dev

  • libboost-dev

  • libboost-thread-dev

  • libboost-filesystem-dev


b25ではry)

  • libpcsclite-dev

  • pcsc-tools

  • libccid pcscd

2010年1月30日土曜日

Ubuntu 9.04 で Inkscape 0.47

jauntyのリポジトリにあるInkscapeは0.46です。gnuplotとの相性の悪さやスナップ機能、マルチウインドウでのクリップボード共有など0.47では改善されてます。ソースファイルをInkscape公式サイトからダウンロードして展開しておきます。
ビルドする前に以下のパッケージをインストールしておきます。

  • intltool

  • libpng12-dev

  • libgc-dev

  • libfreetype-dev

  • liblcms-dev

  • libgtkmm-2.4-dev

  • libxml++-dev

  • libxslt-dev

  • libgsl0-dev

  • libboost-dev

  • libpopt-dev

  • libmagick++-dev

  • libwpg-dev

  • libgnome-vfsmm-2.6-dev

  • libperl-dev


ビルドします。

# ./configure --enable-binreloc --with-python --with-perl
# make
# make install

textextを利用する場合以下のパッケージをインストールします。

  • python-lxml

  • pdf2svg


textext本体(python)をtextext公式サイトからダウンロードする。展開してtextext.pyとtextext.inxを".config/inkscape/extensions/"に移動します。
これでTeXの環境が整っていれば使用できます。
ただし、いちいち警告がでるのでここを参考にスクリプトを修正。
あとは"/usr/local/share/inkscape/keys/default.xml"の末尾のあたりに

<bind key="x" modifiers="Ctrl,Shift" action="org.ekips.filter.textext" display="true"/>
<bind key="X" modifiers="Ctrl,Shift" action="org.ekips.filter.textext" />

と書き加え、ショートカットキーを登録して完成です(ただしCtrl+Shift+xキーには元々xmlエディタみたいのが登録されてます)。

Ubuntu 9.04 で TeX

以下のパッケージをインストール。

# aptitude install latex-env-ja latex-extra-ja texlive-latex-extra

このままだとdvipdfmxがうまく動かない。

** WARNING ** Could not open config file "fontmapsx".
test.dvi -> test.pdf
[1kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 2+180/600 --dpi 1380 gbm-jis
mktexpk: don't know how to create bitmap font for gbm-jis.
kpathsea: Appending font creation commands to missfont.log.

** WARNING ** Could not locate a virtual/physical font for TFM "gbm-jis".
** WARNING ** >> There are no valid font mapping entry for this font.
** WARNING ** >> Font file name "gbm-jis" was assumed but failed to locate that font.
** ERROR ** Cannot proceed without .vf or "physical" font for PDF output...

難解なエラーが出ているが、リンクを貼り直すだけで直ります。

# ln -s /etc/texmf/dvipdfm /etc/texmf/dvipdfmx

2009年11月23日月曜日

Debian で USBオーディオ

Debian lenny LXDEの環境下での、USBオーディオデバイスをデフォルトサウンドカードとして利用する方法。

まず使用しているUSBオーディオデバイスの名前を確認。
# asoundconf list
これをデフォルトサウンドカードとして設定。
# asoundconf set-default-card hogehoge
これだけでは安定してUSBオーディオデバイスをデフォルトサウンドカードと認識しない(何度か再起動するとオンボードのサウンドカードになっていたりする)。そこでUSBオーディオデバイスを最初に認識するように以下の設定を/etc/modprobe.d/alsa-baseの最後の方に書き加える。
options snd-usb-audio index=0
もし"options snd-usb-audio"が既に記載されていたらindexの番号を0に変更する。ここで一度再起動、ログアウトした方がいい(読み込み順序、デフォルトカードの確認のため)。
この段階ではほとんどの音楽再生ソフトが動かなくなると思う。そこで変更の旨をALSAの設定ファイル"~/.asoundrc"に直接以下のように書き加える。
pcm.!default{
type hw
card 0
}

ctl.!default{
type hw
card 0
}
"card 0"という番号はAudaciousなどのメディアプレイヤで調べることができる(/proc/asound/modulesを見てもいい)。
Audacious起動->Preferences->Audio->Output Plugin Preferencesと辿り、Audio deviceのコンボボックスを展開し、USB Deviceの(hw:0,0)というところでカードの番号を確認できる(デフォルトサウンドカードをUSBオーディオデバイスに設定している場合はおそらく0になっているはず)。図のように他のオーディオデバイスが接続されている場合は(hw:1,0)、(hw:2,0)などと割り振られる。



再起動すればメディアプレイヤやflashで音声を再生できる。

Debian の 起動時のメッセージ

/etc/default/bootlogdの"BOOTLOGD_ENABLE"の値をyesに変更する。
再起動後に/var/log/bootに起動時のメッセージ、つまりブートログが記録される。

2009年10月7日水曜日

Java で 組み合わせ

再帰呼び出しによる組み合わせ問題のプログラム。"n1個の中からn2個を選択"。

public class Combination{

public static void main(String[] args){
combination(10, 3);
}

public static void combination(int n1, int n2){
int[] comb = new int[n2+1];
int no = 0, index= 1;

nest(no, index, n1, n2, comb);
}

public static void nest(int no, int index, int n1, int n2, int[] comb){

for(int i = no+1; i<=n1-n2+index; i++){
comb[index] = i;
if(n2 != index){
nest(i,index+1,n1,n2,comb);
}else{
for(int j = 1 ; j <= n2 ; j++){
System.out.printf(" %2d", comb[j]);
}
System.out.printf("\n");
}
}

}

}