2011年11月アーカイブ

息子が写真を取り込みたいと言うので、久しぶりにスキャナを使うことにする。
試しに、USBで直接Macに繋いだ所、認識しない。
メーカーのページで調べてみたところ、ドライバはMac OS X 10.4まで、もしくはWindows Vista 32bitまで。
Lionでは当然使えなさそうなので、他の方法を探す。
と、言うか、以前Macを買ったときに、xsaneを使えるようにしていた。Macからsaneのスキャナを使う - PC日記
ので、xsaneを起動してみたところ、スキャナが見つからないと言う。
サーバであるFreeBSDでscanimage -L してみると、やはりスキャナが見つからない。
/var/log/messageを見ると、
Nov  5 10:35:46 sv kernel: ugen0.3: <National Semiconductor> at usbus0
のように出ている。以前は、
Nov  5 11:10:20 sv kernel: ugen0.3: <Canon> at usbus0
のように出ていたはずなのに。USBを抜き差しすると、もとに戻った。
sane-find-scannerやscanimage -L を実行すると、
# sane-find-scanner
found USB scanner (vendor=0x04a9 [Canon], product=0x220d [CanoScan], chip=LM9832/3) at libusb:/dev/usb:/dev/ugen0.3
# scanimage -L

No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).
以前は認識していたはずなのに、scanimage -L で出てこない。
いろいろ試してみた結果、/usr/local/etc/sane.d/plustek.conf の
[usb]
の行を、
[usb] 0x04a9 0x220d
のようにしたら、
# scanimage -L
device `plustek:libusb:/dev/usb:/dev/ugen0.3' is a Canon CanoScan N670U/N676U/LiDE20 flatbed scanner
のように出て来た。
plustek: の部分は、canonとかcanon630uとかになるべきじゃないかと思って、canon.confとかcanon630u.conf をいじっってみたけど、変わらず。さらに、plustek.conf を元に戻しても、認識したまんまだったりして、良くわからない。
Jenkinsではじめるビルド職人入門 が、11月中だけ発売記念で無料(12月から1,000円)だったので読んでみた。
自分で使ったことはないけど、隣のプロジェクトが使ったりしているので、そんなに目新しいことはなかったのだけれど、とりあえずうちにも入れてみようと思う。
portsを調べると、devel/jenkinsと言うのがあったのでインストールしてみる。
すると、jenkins.warをダウンロードしてきて /usr/local/share/jenkins にインストールして、後はユーザやグループを作ったり、ディレクトリを作ったり、/usr/local/etc/rc.d に起動スクリプトを作ってくれたりするらしい。
jenkinsは、warなので、tomcatのようなServletコンテナでも実行できるし、直接javaに渡すことでjenkinsに入っている Winstone と言うコンテナでスタンドアローンでも起動できる。
rcスクリプトで jenkins_enable="YES" にした場合は、Winstone を使うことになる。
既にtomcatなどを動かしている場合は、そちらを使った方が良いかも知れない。設定方法わからないけど。

とりあえず、うちではtomcatは動いていなかったので、rcスクリプトをそのまま使う。/usr/local/etc/rc.d/jenkinsを読むと、jenkins_enable="YES"にしたときのデフォルトの挙動と、それぞれの設定項目が読める。
: ${jenkins_enable="NO"}
: ${jenkins_home="/usr/local/jenkins"}
: ${jenkins_args="--webroot=${jenkins_home}/war --httpListenAddress=127.0.0.1 --httpPort=8180 --ajp13ListenAddress=127.0.0.1 --ajp13Port=8009 --prefix=/jenkins"}
: ${jenkins_java_home="/usr/local/jdk1.6.0"}
: ${jenkins_user="jenkins"}
: ${jenkins_group="jenkins"}
: ${jenkins_log_file="/var/log/jenkins.log"}
※ jenkins_java_home は、portsが決めてくれたんだと思う。うちはjdk1.6.0が入っていたので。
これを見ると、jenkins_homeは/usr/local/jenkinsであり、httpが8180で、ajp13が8009で、それぞれlocalhostだけでLISTENすることがわかる。
なんとなく頻繁に書き変わるものは/varに置きたいので、/etc/rc.conf は以下のようにした。
# jenkins                                                                       
jenkins_enable="YES"
jenkins_home="/var/local/jenkins"
そして、/var/local/jenkinsを作成。
# mkdir /var/local/jenkins
# chown jenkins:jenkins /var/local/jenkins
そして、jenkins起動。
# /usr/local/etc/rc.d/jenkins start

FreeBSDにはグラフィカルなブラウザを入れていないので、このままではアクセスできない。apache経由でアクセスできるように、httpd.conf の VirtualHostの中に以下を追加。
    <Location /jenkins>
        ProxyPass ajp://127.0.0.1:8009/jenkins
    </Location>
apacheに読み込ませる。
# apachectl graceful
これで、apache経由でjenkinsにアクセスできる。
アクセスすると、最初は誰でもjenkinsが使えるモード。
Jenkinsの管理→システムの設定で、「セキュリティを有効化」にチェックを入れる。
アクセス制御のところでアカウント管理のバックエンドが選べるので、小規模なのであれば「Jenkinsのユーザーデータベース」で問題ないだろう。PAMも使えるようなので、そちらでも良いかも知れない。
この後の手順が良くわかっていないのだが、私の場合は同じ画面の「権限管理」で「行列による権限設定(プロジェクト単位)」を選び、ユーザを追加してすべての権限にチェックを入れ、画面一番下の「保存」を押したらサインアップの画面が出て来たので、先ほど権限で追加したのと同じユーザ名でユーザを登録した。
普通に保存だけして、最初の一人は管理者としてサインアップできるのかも知れないが、面倒ので検証していない。
後は、普通にジョブを追加してjenkinsに実行してもらえば良いのだが、開発中のプロジェクトもないのでやってもらうことがないのである。
明日会社でプロジェクトのリリース手順でも自動化しようかな・・・。
2011年11月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

このアーカイブについて

このページには、2011年11月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2011年10月です。

次のアーカイブは2011年12月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.1.1