RhodeCodeのhgのコミットメッセージが文字化けしていたのを直す。
githubクローンのgitlabを挫折した人が、bitbucketクローン?をRDBMSでRhodecodeを導入してみた
でRhodecodeを導入して、紆余曲折ありましたが、mercurialで運用しています。
で、コミットメッセージが日本語だと化けて、何が原因かなぁーとか思ってたんですが、以下で直りました。
export HGENCODING="UTF-8"
node-postgresのgithub wikiを訳しました。
お仕事でnode.jsでPostgreSQLを使おうと思うところがあったので、Wikiの内容を訳しました。
例によってレベルが低いので、おかしい部分は指摘ください。
https://github.com/dai-yamashita/node-postgres/wiki
herokuとかでPostgreSQL使うの、これで便利になりますね!!(そんなわけないか。。。)
今回は、Wikiの内容をgit cloneして、poファイルを作って翻訳ソフトで訳す形で進めたんですが、
Wikiの内容をbranchしてどうこうってのも微妙だなぁーってことで、とりあえず、手で貼り付けるというローテク。。。
po4a使ってます。
# poファイル作成 po4a-updatepo -M UTF-8 -f text -o markdown -m ./pg.md -p ./pg.md_ja.po # poファイルと元ファイルから翻訳済みファイル作成 po4a-translate -f text -o markdown -m readme.md -M UTF-8 -p ja.po -l readme_ja.md
みたいな感じです。結構便利ですね。po4a。逆にgettextもう使い方忘れたw
ファイル多いんでfindコマンドでバーって作って戻すみたいなことも。
# まとめてpoファイル作成 find -maxdepth 1 -name "*.md" -print0 |xargs -i -0 echo "po4a-updatepo -M UTF-8 -f text -o markdown -m {} -p {}_ja.po" # まとめてpoファイルと元ファイルから翻訳済みファイル作成(雑)ちゃんと書け。。。 find -maxdepth 1 -name "*.md" -print0 -type f |xargs -i -0 po4a-translate -f text -o markdown -m {} -p {}_ja.po -l ./translate/{}
みなさんこーいうのどうやっていってるんでしょうか?githubでちゃんとバージョン管理するんですよね。。。やっぱり。。。
是非教えてくださいませ。。。
こんなんでも、node.js界隈のお仲間に入れてもらえたりすると嬉しいです。。。(´-∀-`;)
いろいろ取り組んでいきたいと思います。
Office365のLyncをLinux環境のクライアンで接続する(pidgin)
誰得な記事です。まぁ、自分の備忘録。
GoogleApssでなくて、Office365を使用しました。
結構便利です。安定のMSクオリティでデザインも。(ry
詳しいことは、Office365のHPでどうぞw(まわし者ではありません。)
http://www.microsoft.com/ja-jp/office365/what-is-office365.aspx
今は、プランP1です。(30日間無料体験できるので、みんな使ってみるといいと思うよ!!)
ちなみに、もともとGoogleAppsのひとだったりしますw
で、結構やり取りに大事なのが、Lync2010なんですが、MSさんからクライアントって、
当たり前のWindowsさんとMacさんなんですよねー。
メイン環境をLinuxにしたこともあって、これ困った。そのために仮想環境たちあげてましたが、
やっぱりいろいろやりにくい。。。助けてぇーグーグル先生―っと結構いろいろやってましたが、
どーやら、pidginだと対応している模様。そこにsipeと組み合わせますよっということまでは、わかりました。
yum install -y pidgin yum install -y pidgin-sipe
で、そこからGoogleのXAMPPはすぐに登録できて、さぁ、本題と思ったんですが、office365になかなか繋がらない。。。
設定方法がわからなくて、すごく悩みました。。。
office365上のドメインのDNS参照したり、SSOの設定外すのか、外さないのか。。。特にネット上に多かったのは、
接続方式、「SSL/TLS」で、認証方式が「NTLM」でした。
これだと、認証ホント繋がらないんですよねー。。。
で、だいぶかかってたどり着いたのが、以下
http://community.office365.com/en-us/forums/166/t/6903.aspx
Username: me@mydomain.com Login: me@mydomain.com Auth Scheme: TLS-DSK User-Agent: UCCAPI/4.0.7577.314 OC/4.0.7577.314 (Microsoft Lync 2010) UCCAPI/4.0.7577.256 OC/4.0.7577.280 (Microsoft Lync 2010) Servers: pool1.oconline.microsoftonline.com:443 sipdir.online.lync.com:443 and i have also set this: $ printenv | grep NSS NSS_SSL_CBC_RANDOM_IV=0
これを参考に、自分で設定した内容は以下になります。
[基本]
プロトコル | Office Communicator |
ユーザー名 | office365に登録しているメールアドレス |
login | office365に登録しているメールアドレス |
パスワード : office365のパスワード |
[拡張]
server:[port] | sipdir.online.lync.com:443 |
接続方式 | 自動 |
ユーザーエージェント | UCCAPI/4.0.7577.314 OC/4.0.7577.314 (Microsoft Lync 2010) |
認証方式 | TLS-DSK |
シングルサイオンを利用する | チェックを外す(使用しない) |
まだ、Videoチャットとかは試してないけど、テキストのIMはなんにも問題ありませんでした。
これからの時代は、LinuxがクライアンOSで、Officeをクラウドで使う時代ですねwww
すいません。WindowsはWindowsで必要だと思います。ちょっと言ってみたかっただけです。。。(_ _;)
rhodecodeでgit clone/pushが出来なかったけど、出来るようになって( ゚Д゚)ハァ?
昨日の構築したrhodecodeで、リポジトリを作ってテストまで終わらせたのに、今日やると、できない。。。( ;∀;)
なんで??って調べまくってたらこんな時間。。。orz そしていまはその状況が変わって直ってる?んだけど、その記録。
症状: Linuxで一般ユーザーだと、git clone / push ができない。
(windowsだとcloneはできるけど、pushができない)
gitでhttp経由でいろいろやりたいのが目的。(ローカルなので、セキュアより運用が楽なのが。。。)
git clone http://dai_yamashita@server.gtld/repos1
みたいにすると、プロンプトが出てきて、
Cloning into 'tech_note'... Password:
ってなってパスワード入力して、cloneされます。(本来であれば)
それが、一般ユーザーだと、
Cloning into 'tech_note'...
とパスワード入力画面が出てこない。。。
rhodecodeサーバ側で80ポートをtcpdumpしたら、なんのパケットも飛んできていない。。。
ちなみに特権(root)だと問題なく、動作します。
tcpdump上にもしっかりとパケット出力。
(Windowsだと、push時に表示されるダイアログに正しいパスワードを何度入力しても、エラーが表示される。)
そこで、Windowsのclone時にユーザー名付きのURLじゃない状態にすると、
git clone http://server.gtld/repos1
ファイル追加、コミット、pushなんてのも問題なく、できて、おぉーユーザー名付きURLだとダメなのかぁ―。。。
Linuxでも、一般ユーザーでcloneやらpushができるようになりました。
そして、今この時間は、LinuxでのウインドウマネージャーはKDE使ってるんですが、
git clone http://dai_yamashita@server.gtld/repos1
ってやると、最初のうちは、KDEウォレットが立ち上がりパスワードを入力するようになり、
問題なく、cloneができるよう。。。
rootに切り替えると、
Cloning into 'tech_note'... Password:
ってでてきた。。。
そこからは、一般ユーザーでcloneはできるんですが、パスワードが聞かれなくなり。。。
よくわかりません。。。
どなたか、gitのプロトコル経由や、ユーザ名付きURLだとみたいなことありましたら、ご教授ください。。。
(rhodecode側だよね。。。と思いたいんですが、tcpdumpしたしなぁー。。。)
githubクローンのgitlabを挫折した人が、bitbucketクローン?をRDBMSでRhodecodeを導入してみた
gitlabの環境を構築はしてみましたが、いざクライアント側からpushさせようとか思うと、
うまく行かなかったんですよねぇー。。。つД`)・゚・。・゚゚・*:.。..。.:*・゚
だいぶ調べたけど、ダメでしたw じゃあ、使わないってわけには行かないので、githubクローン?
(どっちかっていうと、bitbucketクローンじゃね?)のrhodecodeを導入してみた際のお話です。
rhodecodeさんは、gitだけじゃなくて、hgも使えます。マルチな方ですねぇーw
hgの方がbitbucketで慣れてるんで、浮気しそうになりますが、ここは、ブームに乗って何とかgitをものにしたいw
バックエンドのDBは、SQLite/PostgreSQL/MySQLで利用可能です。
SQLiteを使うともっと簡単ですが、あくまでPostgreSQLで運用します!!(゚д゚)!(gitlabもPostgreSQLで作りましたよー)
自分の中のいつもの構成で、OSはScientific Linux6.3 インストール時に開発環境のみのBasic Serverです。
ntpとかは、事前にcronで行うような設定が入ってますが、今回は記載省略。
PostgreSQLはソースコンパイルで導入するポリシーなので、
インストール:
/usr/local/pgsql/${pgsql_version}/
データベースクラスタ:
/home/postgres/${pgsql_version}/data
でインストール済みとなっております。
ちなみに、rhodecodeさんは、マニュアルが非常に充実してます!!ココ!!
これ見ながらやれば基本問題ないですが、メモとして。。。
他にも参考サイトを出します。上記のマニュアルと、その参考サイトをミックスしただけと言われるとそれまでなんですが(^_^;)
rabbitmqとceleryのメッセージ関係の処理は入れていません。( ー`дー´)キリッ
(一回やったけど、運用面倒だし、すぐに動かなかったし。。。少人数だし、必要ないw)
http://mbrownnyc.wordpress.com/technology-solutions/rhodecode-and-redmine/
http://mbrownnyc.wordpress.com/technology-solutions/rhodecode-and-redmine/part-1-prerequisites/
http://mbrownnyc.wordpress.com/technology-solutions/rhodecode-and-redmine/part-2-install-rhodecode/
まずは、上記のprerequisitesを参考に、必要なモジュールをインストールと、ローカル環境での使用なんで、環境構築時の問題切り分けとしても、iptablesとSELinuxを止めるという。。。
(まぁ、disabledにしちゃってます。。。ハイ。。。)あと、epelリポジトリの導入。
yum install -y python-devel setenforce 0 vim /etc/selinux/config # SELINUX=disabled /etc/init.d/iptables stop chkconfig iptables off #epel6の導入 wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm rpm -ivh epel-release-6-7.noarch.rpm
ユーザーの作成(上記参照にpasteって人にしてます)
useradd paste #ユーザー切り替えて確認 su - paste whoami id paste exit
で事前準備終了〜。
次に導入フェーズです。今度は、上記のpart-2-install-rhodecodeと、マニュアルのsetupを参考に進めます。
今からだと、pipだろうということで、easy_installでは実施していませんw
# pipのインストール yum install python-pip # virtual environmentの導入 pip-python install virtualenv virtualenvwrapper su - paste mkdir /home/paste/.virtualenvs exit
su paste echo >> /home/paste/.bashrc echo export WORKON_HOME=\$HOME/.virtualenvs >> /home/paste/.bashrc echo source /usr/bin/virtualenvwrapper.sh >> /home/paste/.bashrc source /home/paste/.bashrc #some virtual environment should be created /home/paste/.virtualenvs ls -l -a /home/paste/.virtualenvs/ exit
mkdir -p /var/www/rhodecode-venv /var/www/rhodecode chown paste:paste /var/www/rhodecode-venv /var/www/rhodecode su - paste virtualenv --no-site-packages /var/www/rhodecode-venv #create the virtual environment for rhodecode /var/www/rhodecode-venv/bin/pip install rhodecode #install rhodecode accessible through the virtualenv exit
ここらでrabbitmqとceleryの手順になりますが、今回パス。(epel入ってると簡単にyum一発でイケます)
PostgreSQLとの連動の為のモジュールを導入します。どーやら、psycopg2を使う模様。
su - paste # DBモジュールの導入 # ソースコンパイルでの導入なので、exportしてやらないと、pg_configがないって怒られます export PG_CONFIG=/usr/local/pgsql/9.2.1/bin/pg_config export PATH=$PATH:/usr/local/pgsql/9.2.1/bin /var/www/rhodecode-venv/bin/pip install psycopg2 exit # DBの作成(横着してrootから実行) su - postgres -c "/usr/local/pgsql/9.2.1/bin/createuser rhodecode" su - postgres -c "/usr/local/pgsql/9.2.1/bin/psql -c 'alter role rhodecode createdb;'" su - postgres -c "/usr/local/pgsql/9.2.1/bin/createdb rhodecode -U rhodecode"
Rhodecodeの構成設定関係
su - paste /var/www/rhodecode-venv/bin/paster make-config RhodeCode /var/www/rhodecode-venv/production.ini
構成設定は量が多いので、変更したとこを省略形式で。。。
#vim /var/www/rhodecode-venv/production.ini [DEFAULT] email_to = rhodecode@localhost # コメントを外して環境に合わる error_email_from = paste_error@localhost # コメントを外して環境に合わる app_email_from = rhodecode-noreply@localhost # コメントを外して環境に合わる smtp_server = localhost [server:main] host = 0.0.0.0 # 127.0.0.1からすべて受付に変更 ######################################################### ### DB CONFIGS - EACH DB WILL HAVE IT'S OWN CONFIG ### ######################################################### # SQLITE [default] #sqlalchemy.db1.url = sqlite:///%(here)s/rhodecode.db # コメントにして # POSTGRESQL # 本来はuser:pass@ですが(ローカルだからと甘えて、trustで動かしてるので、パスワード設定なし) sqlalchemy.db1.url = postgresql://rhodecode@localhost/rhodecode # MySQL # sqlalchemy.db1.url = mysql://user:pass@localhost/rhodecode # see sqlalchemy docs for others ・・・
MySQLな人は、コメント解除を変更して、MySQLの設定を書くといけると思います。(ほぼMySQLは詳しくないw)
でリポジトリ保管用のディレクトリを作成(データ領域はhomeにしたいので、/home/reposにしました)
mkdir /home/repos
chown paste:paste /home/repos/
んで、DBを作成します。ここでは、マニュアルを参照して対応。おっと。。。エラーが。。。
/var/www/rhodecode-venv/bin/paster setup-rhodecode /var/www/rhodecode-venv/production.ini --user=admin --password=input_password --email=mail@mail.domain.gtld --repos=/home/repos ・・・ from psycopg2._psycopg import BINARY, NUMBER, STRING, DATETIME, ROWID ImportError: libpq.so.5: cannot open shared object file: No such file or directory
えーと、libpq.so.5: cannot open shared object file: No such file or directoryですよっと。
ソースインストールなので、ライブラリの検索パスはそりゃないな。。。
こちらに詳しく書かれているので、そちらを参照。Cannot Open Shared Object Fileの対処
以下で対応
# vim /etc/ld.so.conf.d/postgresql.conf /usr/local/pgsql/9.2.1/lib
ldconfig ldconfig -p |grep libpq #確認
上記で通っているのが確認できたら、
su - paste /var/www/rhodecode-venv/bin/paster setup-rhodecode /var/www/rhodecode-venv/production.ini --user=admin --password=input_password --email=mail@mail.domain.gtld --repos=/home/repos # ずらずらSQLが流れます。 ・・・ exit
もうすぐ、起動。やっぱり自動起動ですよねーってことで、initスクリプトの為のトラップとログの準備
mkdir -p /var/run/paste/ touch /var/log/pasteserve.log chown paste:paste /var/log/pasteserver /var/run/paste/
んで、initスクリプト(まんまコピー)
# vim /etc/init.d/paste-serve-rhodecode #!/bin/sh # # # # # chkconfig: 345 82 03 # description: #init script for paste serve rhodecode, which was written by #branded on freenode #mbrownnyc everywhere else # ### BEGIN INIT INFO # Provides: paste-serve-rhodecode # Required-Start: $remote_fs $network # Required-Stop: $remote_fs $network # Description: Paste httpserver to serve rhodecode over http ### END INIT INFO start() { if [ ! -f /var/run/paste/rhodecode.pid ]; then #process isn't running probably echo Attempting to start paste serve rhodecode... daemonizing su -c '/var/www/rhodecode-venv/bin/paster serve /var/www/rhodecode-venv/production.ini --daemon --user=paste --pid-file=/var/run/paste/rhodecode.pid --log-file=/var/log/pasteserve.log' paste while [ ! -f /var/run/paste/rhodecode.pid ]; do sleep 3 && echo .; done echo Done. PID is $(cat /var/run/paste/rhodecode.pid). else echo The paste serve rhodecode has filed a paste PID $(cat /var/run/paste/rhodecode.pid) echo It\'s likely started already at that PID. fi } stop() { if [ -f /var/run/paste/rhodecode.pid ]; then #process is running probably echo Telling daemonized paste httpserve process to die su -c '/var/www/rhodecode-venv/bin/paster serve --stop-daemon --pid-file=/var/run/paste/rhodecode.pid' paste echo Waiting for process to die... while [ -f /var/run/paste/rhodecode.pid ]; do sleep 1 && echo .; done else echo /var/run/paste/rhodecode.pid doesn\'t exist, so the paste httpserve process was not used to executed using the proper config, if paste is running. echo Otherwise it isn\'t running. fi } restart() { stop start } status() { if [ -f /var/run/paste/rhodecode.pid ]; then echo paste httpserve process is running as PID $(cat /var/run/paste/rhodecode.pid) su -c '/var/www/rhodecode-venv/bin/paster serve /var/www/rhodecode-venv/production.ini --status --pid-file=/var/run/paste/rhodecode.pid' paste else echo paste serve rhodecode isn\'t running. fi } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) status ;; *) echo $"Usage: $0 {start|stop|restart|status}" ;; esac exit 1 [esc]wq![enter]
もう残りわずか!!自動起動設定
chkconfig --add paste-serve-rhodecode chkconfig --level 345 paste-serve-rhodecode on
んで、起動。
touch /var/log/pasteserve.log chown paste:paste /var/log/pasteserve.log service paste-serve-rhodecode start ls -l /proc/ | grep $(cat /var/run/paste/rhodecode.pid) # the owner should be paste
ポートがデフォルトだと5000での起動なのと、使わないけどw httpsのことも考えておいて、
リバースプロキシ立てますか。ということで、マニュアル参照。https-support
Nginxとかいろいろ考えたけど、無難にapacheでvhostでの運用にしました。
yum install httpd #vim /etc/httpd/conf/httpd.conf # 最終行に以下を追加 include /etc/httpd/conf/virtualhost_rhodecode.conf
んで、同じ内容を記載。(環境に合わせてくださいませm(_ _)m)
# vim /etc/httpd/conf/virtualhost_rhodecode.conf <VirtualHost *:80> ServerName hg.myserver.com ServerAlias hg.myserver.com <Proxy *> Order allow,deny Allow from all </Proxy> #important ! #Directive to properly generate url (clone url) for pylons ProxyPreserveHost On #rhodecode instance ProxyPass / http://127.0.0.1:5000/ ProxyPassReverse / http://127.0.0.1:5000/ #to enable https use line below #SetEnvIf X-Url-Scheme https HTTPS=1 </VirtualHost>
/etc/init.d/httpd start
起動したァーってこれでなります。
ワーイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワーイ
使い方は以下を参照ください。
管理者のログインは、DB作成時の引数になります。(ノ∀`)アチャーって方は、
httpdとpaste-serve-rhodecode stopさせてやり直すか、管理者画面で修正してください。↓これです。
/var/www/rhodecode-venv/bin/paster setup-rhodecode /var/www/rhodecode-venv/production.ini --user=admin --password=input_password --email=mail@mail.domain.gtld --repos=/home/repos
使い方は、以下を参照するとまとめられてます。そして全く同じ問題に遭遇wGitとRhodecodeの罠(履歴とかコメントとか表示されない)
Rhodecodeの使い方とGitの問題と
fedoraのgit最新とか持ってきたけど、gitって依存モジュール結構あって大変でしたので、素直にrpmforgeを導入して対応。
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
こわいんで、rpmforgeのリポジトリは標準で使わないように変更。
# vim /etc/yum.repos.d/rpmforge.repo [rpmforge] name = RHEL $releasever - RPMforge.net - dag baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge enabled = 0 # < enable = 1 を0に変更
んでインストール
yum --enablerepo=rpmforge-extras install git
完璧!!ワーイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワーイ
最初ちょっとハマったのは、リポジトリ作成画面で、
「ADD NEW REPOSITORY」画面で「clone from:」って絶対入れないとイケないとか思い込んでた自分が恥ずかしい。。。
cloneして作成しなければ、何もいれずに作成すればいいという。。。当たり前体操〜☆(*´ω`*)
gitlabよりマニュアルそれってますし、運用も楽ですね。
個人的には圧倒的にこちらの方が使いやすいです。
誰かマニュアルを日本語訳にしていたような。。。|д゚)チラッ
少人数だったらbitbucket使っとけよとか言わないように。。。( ̄ b ̄) シーーッ!!
気が向いたら画面貼ります。終わり。
Sublime Text2を使い始めてみた。(Linuxでの日本語入力できるようにした)
いろいろ悩んでいたエディタですが、Sublime Text2に落ち着きそうです。http://www.sublimetext.com/
基本環境がLinuxなんですが、全OS環境で使えるのがいいなぁーっていうのもあったり、
使用したい言語の対応がなかったりと、最低限満たしてくれるものというと、VimであったりEmacsなんですが、
そんなに出来る子じゃないので、サーバの最低限の設定が出来ればいいんだよ。この子たちは。っていうのがあって。
(あんまり便利にしちゃうとサーバ入ったときにいろいろ不便で入れたくなってしまう病(別名:発作)が発生するので。。。)
ですが、この方、Linux環境(ibus)での入力に対応しておりません。(日本語入力できない)
でも改善方法がわかったので、使うことにしました。
http://www.tipiweb.tk/blog/2012/06/16/little-simple-way-to-use-ibus-in-sublime-text-2/
(githubだと、https://github.com/xgenvn/InputHelper)
ここで、sublimetext2を起動したことがあると、homeのユーザー配下に.configができてます。
んで、上記のInputHelperをcoloneしますよっと。(まぁ、ページ通りですが。。。)
cd ~/.config/sublime-text-2/Packages git clone https://github.com/xgenvn/InputHelper.git
で、Ctrl+Shift+Zを押すと、
入力ダイアログがあらわれて、日本語入力できるようになります!!(日本語問題クリアーヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワーイ)
で、Ctrl + Enterで入力されます。
あとは、いろいろなパッケージ管理を追加するために、package_control導入すると便利とのことなので、
日本語キーボードだと、Ctrl+Shift+@ を押して、
http://wbond.net/sublime_packages/package_control/installation を参考に、
import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'
をします。
あとは、もうカスタマイズし放題なので、好きにしてください。
以下を参考にしました。(使い方の勉強も含めて。。。)
http://qiita.com/items/41b2a6646e4f36de09bf
http://mnemoniqs.com/web/sublimetext2/
http://miha5.com/2012/09/2507/
http://qiita.com/items/b1704269a36bc7e99840
まだまだ、使いこなすレベルにはなっていませんが、キレイだし、イイ環境になってます。
LuaでPostgreSQLに接続(libpqベース)
LuaでDB接続といえば、LuaSQL(ODBC)が有名だと思うんですが、PostgreSQLに接続するんだったら
やっぱりlibpqベースだよねぇーってことで、いろいろ試しましたが、一番良かった奴のメモ。
luaのPostgreSQLのドライバは以下にまとまっています。
http://lua-users.org/lists/lua-l/2011-01/msg01031.html
http://lua-users.org/wiki/DatabaseAccess
で、気に入ったのが、 lua-poastgres。
https://github.com/norman/lua-postgres
まだまだ、機能不足ですが、今後に期待&自分でいじれそうってのが大きいですが。。。
導入手順
githubの中にrockspecあるんだけど、luarocksで導入できなかったので、普通にソースコンパイル。
前提で、/usr/local/pgsql/${VERSIONS}/ にDBをインストールするのが自分のお約束なので、
それに従っています。(今回は9.1.3使ってます)
git clone https://github.com/norman/lua-postgres.git export PG_CONFIG=/usr/local/pgsql/9.1.3/bin/pg_config export PATH=$PATH:/usr/local/pgsql/9.1.3/bin make paco -D make install
で、あとは、test配下にいろいろあるので、そっち参考にしてもらえばいいんですが、
一応サンプルが動くかをのテストコード。
local postgres = require "postgres" local conn = postgres.connection('dbname=postgres host=localhost user=postgres') --local result, error = conn:execute("SELECT * FROM pg_tables") local result, error = conn:execute("SELECT now() ") if err then error(err) end for i = 1, #result do local row = result:fetch() print(row[1]) -- prints the name end
C言語頑張らないとなぁー。。。