お前ら全員、こっぱミトコンドリア!

02/19()

_ ちかごろの FreeBSD ports

Xorg Driver xf86-video-intel

Xorg Driver のバージョン上げたら、 *1 カーネルモジュール勝手にロードする というのがなくなったようで、自分で明示してカーネルモジュールをロードする 必要がある。
/boot/loader.conf でも /etc/rc.conf に kld_listにでも、i915kms を追加
参照

qtchooser-39 conflicts with qt4-rcc-4.8.7

もう、わけわかりません。
古いどっちかと新しいどっちかのインストールファイルに競合が生じてて、 いったん、qt4-rcc を deinstall して qt4-qmake を作ったあとで、 qt4-rcc をアップデート。でいいのか?

*1: pkg でバージョン上げました

---

---

02/13(月)

_ node-fastcgi

node.jsというと、Expressなどのフレームワークで、httpdから全部 Javascriptで書いちゃう。のが主流になってますが、 そういうのは他の人に任せるとして、別のnode.jsの使い方をしてみます。
node.jsでCGIでもいいんですが、どうせなら、fastcgiインターフェースはないかな? と探してみると、npmにnode-fastcgiモジュールがあります。これを使ってみます。
ときたま、apacheも入ってないjailがありましたので、たまにはapacheから入れてみるかと。
superuser での処理
#pkg install www/apache24
#pkg install www/mod_fcgid
#pkg install www/node
#pkg install www/npm
/etc/rc.conf を編集
apache24_enable="YES"
追加

FreeBSD apache は Includesディレクトリの内容を httd.conf でincludeするように なってますので、積極的に使っていきます。
cd /usr/local/etc/apache24/Includes/
cp ../extra/httpd-userdir.conf .

httpd-userdir.conf編集
UserDir 行の前に
LoadModule userdir_module libexec/apache24/mod_userdir.so
追加
Options MultiViews... の行に
ExecCGI
追加

fcgid.conf 新規作成
LoadModule fcgid_module libexec/apache24/mod_fcgid.so

<IfModule mod_fcgid.c>
   AddHandler fcgid-script .fcgi
</IfModule>
で作成

apacheを起動
#/usr/local/etc/rc.d/apache24 start
でapacheスタート

superuser での処理はここまで

今回はnpmグローバルを使いませんので、後で設定してもいいのですが、 最初に設定しておきましょう。
%npm config set prefix=/home/自ユーザ名
npmグローバルディレクトリを /home/自ユーザ名 にします。
普通は npmグローバルディレクトリは /usr/local で、 npm -g でインストールしたファイルは /usr/local/bin, /usr/local/lib に格納されますが、 FreeBSD 上の npm で /usr/local を使うのは、ちょっと違うのではないか? という気がしてまして、普通とは違う設定にします npm -g でインストールしたファイルは ~/bin ~/lib に格納されます。 コマンドパスに ~/bin がない場合には設定しておきましょう。

httpd でのユーザディレクトリを作成します。
%mkdir public_html
public_htmlはhttp:.../~ユーザ名 でアクセスした場合のディレクトリです。
そこにfastcgiテスト用にディレクトリ作成と、node-fastcigモジュールのインストールを行います。
%cd public_html
%mkdir fcgi_test
%cd fcgi_test
%npm install node-fastcgi
https://www.npmjs.com/package/node-fastcgi にある Example をそのままのファイルを作成します。
nodefcgi.js
var fcgi = require('node-fastcgi');

fcgi.createServer(function(req, res) {
   if (req.method === 'GET') {
     res.writeHead(200, { 'Content-Type': 'text/plain' });
     res.end("It's working");
   } else if (req.method === 'POST') {
     res.writeHead(200, { 'Content-Type': 'text/plain' });
     var body = "";

     req.on('data', function(data) { body += data.toString(); });
     req.on('end', function() {
       res.end("Received data:\n" + body);
     });
   } else {
     res.writeHead(501);
     res.end();
   }
}).listen();

このファイルをキックするfcgiスクリプトを作ります
nodefcgi.fcgi
#!/usr/local/bin/node nodefcgi.js
実行パーミッションを付加します
%chmod +x nodefcgi.fcgi
http://ホストアドレス/~自ユーザ名/fcgi_test/nodefcgi.fcgi にアクセスします。
It's working
と出ました。これで、node-fastcgiが動いているところまできました。
何も問題がでませんでした。つまらん(そうじゃなくて

02/09(木)

_ PHP7.1

PHP怖いんで、外向けのサーバには入れてないんだけど、 内向けのサーバーにはPHP7.0が入れてあったりして。
というわけで、FreeBSD での PHP7.0からPHP7.1への入れ替え

まず、/etc/make.conf のデフォルトバージョンの変更
DEFAULT_VERSIONS+=php=7.0
DEFAULT_VERSIONS+=php=7.1
に変更します。
続いての作業で使う ports management tool は portupgradeを使いました。 依存関係を保持したまま、パッケージアップグレード
#portupgrade -o lang/php71 -f lang/php70
#portupgrade -o www/mod_php71 -f www/mod_php70
つぎに php70-xxx の名前をもつパッケージのアップグレード まず
#pkg info -o 'php70*' | sed -e 's/.*[ ]\([a-z]*\)\/php70\-\(.*\)/portupgrade -o \1\/php71-\2 -f \1\/php70-\2/' > puphp71.sh
ファイル(puphp71.sh)に書き込んだ後、目で確認してから、そのファイルを /bin/sh で実行します
#sh puphp71.sh
php70-xxx のパッケージが残ってないことを確認します
#pkg info 'php70*'
あとは、php71に依存していて php7x-xxx のパターンでないパッケージのリビルド
portupgrade -frx 'php71*' php71
これで、php71になったかな?(よくわかってません)
なんか mod_php が動かない気がするので、もう一度ビルドしました。他にも壊れてるところがあるかもしれません。 内向きhttpdですから (^_^;;

02/02(木)

_ Embedded Timeline

Embedded Timeline 入れました。
なにげにうっとうしいんで、場所変えるかもしれません。 やり方などは Twitter Publish

02/01(水)

_ Jekyll3

前振り
少し前から Jekyll に興味があって、FreeBSD だと ports/www/rubygem-jekyll にあるんだけど、 Jekyll が要求するrubygem-rouge, rubygem-liquid あたりのバージョンが古くないとダメ という制限があった。自分ちだけなら、古いportsを保存しておいて、そっちをインストール、 バイナリはholdしておくという手もとれるわけだけど、紹介するのに、
その古いバージョンどこにありますか
と聞かれるのもめんどっちいし、そもそも ports でビルドしても、実行時にバージョンチェックで 動かないというのは prots システムとして問題あるでしょ。
というわけで放置していたんですが、しばらく前に、古いバージョンを別portにして使用するように 変更されたので、何も考えずに Jekyll が使えるようになった。めでたし、めでたし。

以上、5 日分です。

早起き生活
Powered by 早起き生活

こりゅう こんな顔で出ています
twitter id は a_rin

Powered by hns-2.10-beta9, HyperNikkiSystem Project

いままでのものはこちら

2014年 <5月> <4月> <3月> <2月> <1月>
2013年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2012年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2011年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2010年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2009年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2008年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2007年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2006年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2005年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2004年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2003年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2002年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2001年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2000年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
1999年hns <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月>
1999年 <3月> <2月> <1月>
1998年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月>


~a.rin/ にもどる
こんな感じ?