nDiki : svn

2005年7月26日 (火)

普通の人向けに svnserve を立ち上げるか

開発チームでは主に svn+ssh で Subversion を利用している。

Windows ユーザは

  1. 前準備「PuTTYgen で鍵ペアを生成し」「リポジトリのあるサーバ(Linux)側に公開鍵を登録」
  2. 前準備「Pageant を動かして秘密鍵を指定しておく」
  3. TortoiseSVN でリポジトリアクセス

という手順をとっている(参考記事)。 しかしこの方法は SSH に詳しくなかったり Linux のオペレーションとかに慣れていなかったりするユーザにはかなり敷居が高い。

最近ソフトウェア開発以外でのチームでも Subversion の利用を検討しているが、この手順だと多分萎えるはず。

SSH暗号化するほどのセキュリティが必要ない運用なので、svnserve を起動して運用した方が楽そうだ。まだ使ったことがないけれど。

svnserve を実行する権限を気にする必要がある以外は基本的には手間なしのはず。 しかし svnserve の組み込みの認証機能を使う場合には、平文パスワード文字列を含むパスワードファイルを使う必要があるのがちょっと嫌。

スポンサード リンク
[ 7月26日全て ]

2005年8月24日 (水)

Module::Buildソースパッケージング

ExtUtils::MakeMaker

私が Perl が好きな理由の一つに、標準でExtUtils::MakeMakerという Makefile ジェネレータがついているところである。これを使って Makefile.PL を書くと

 perl Makefile.PL
 make manifest
 make
 make test
 make dist

で <pacakge>-<versionno>.tar.gz というソースパッケージを作ることができ、

 tar zxvf <pacakge>-<versionno>.tar.gz
 cd <pacakge>-<versionno>
 perl Makefile.PL
 make
 make test
 make install

という手順でインストールする事ができるようになる。 パッケージの作り方が確立されているので、容易に新しいパッケージを開発しはじめられる。

逆に Java でプログラムを書くのが億劫なのは、このあたりの準備が面倒だからである。 Ant を使っても結局ここら辺自分でやらなければならないし。

ちょっとしたアーカイブの作成

ちょっとしたパッケージを作りたいと思うことは良くある。 例えばいくつかのデータファイルと、READMEファイルなんかをひとまとめにしてアーカイブにするとか。

本当にちょっとしたであれば、手動でアーカイブすれば良いのだが、

  • アーカイブしたいファイル群がバージョン管理下にあって、CVS ディレクトリや .svn ディレクトリがある (除外してアーカイブする必要がある)
  • 同じディレクトリにある、作業用のファイルはアーカイブしたくない (除外してアーカイブする必要がある)
  • アーカイブする前に、チェック用のリグレッションテスト一式を走らせたい (リグレッションテストをかけられるようにする)
  • UNIX でも Windows でもアーカイブ化できるようにしたい。

あたりを考慮しなければならない時は面倒くさくなってくる。

自動化としては

あたりがぱっと思い浮かぶ。 しかし、最初の2つは毎回同じようなものを書くのが面倒だし保守もしにくい。 GNU Autotools はちょっとごっつすぎだし、Windows での環境構築も面倒。

ExtUtils::MakeMaker の欠点

ということで最初は ExtUtils::MakeMaker を使うという線で考えてみた。 もともと Perl モジュール用で汎用用途にはちょっと邪魔な振舞いもあるが、使えないことはないと思う。 しかし make (GNU Make あるいは nmake など) に依存しているという欠点がある。

Module::Build

ということで ExtUtils::MakeMaker の代替である Module::Build ベースで汎用用途に使えないか検討してみた。こちらは pure Perl で make を必要としない。

Module::BuildPerl モジュールビルドにあわせた振舞いがあるものの、ちょっとカスタマイズすれば使えそうだ。 で、いろいろいじった結果、次のような感じにすると使いやすそうだ。

 use Module::Build;
 my $class = Module::Build
   ->subclass(class => 'NonmoduleBuilder',
              code => q{
                        # Don't make blib
                        sub ACTION_code {};
                        # Don't make blib
                        sub ACTION_docs {};
                        # Don't make META.yml
                        sub ACTION_distmeta {
                          # no warning on ACTION_distdir
                          $_[0]->{metafile} = 'MANIFEST';
                        };
                        # Don't add MEATA.yml to MANIFEST
                        sub ACTION_manifest {
                          $_[0]->{metafile} = 'MANIFEST',
                          $_[0]->SUPER::ACTION_manifest(@_);
                        };
                       });

 # Set your archive name and version.
 $class->new(dist_name => 'mypackage',
             dist_version => '1.0.2',
             )->create_build_script;

カスタマイズした部分は以下(Module::Build 0.26 で動作確認)。

  • Perl モジュールビルドに特有の blib ディレクトリを作らないようにする。
  • META.yml を生成しないようにし、アーカイブに含まれないようにする。

上記のようなファイルを Build.PL という名前で作っておけば

 perl Build.PL
 ./Build manifest
 ./Build
 ./Build test
 ./Build dist

等として、アーカイブ作成が容易にできるようになる。

しばらくこの方法でいろいろ試してみることにしてみよう。

[ 8月24日全て ]

2006年2月3日 (金)

amaroK から Last.fm へ送信できるようになった

iTunesプラグイン iScrobbler For Windows 1.1.0 をインストールして、曲を再生してみたところ Last.fm へ曲情報をうまく送信できた。 アカウントの方は特に問題ないらしい。

やはり amaroK 側の問題か。

何度か amaroKsvn 版をコンパイルして試してみるうちに、そういえば configure した際にいくつか optional なライブラリが無くてそれらの機能が外されている旨の表示が出ていたことを思い出した。 apt-get build-dep amarok では全部入らないらしい。

README をみて必要なライブラリを確認。 libmp4v2 あたりが怪しい。ということで libmp4-dev パッケージをインストール。 また前回インストールされていなくて configure に --without-akode していたので aKode 関係のライブラリもあわせていれておく。

で再インストール。

で再生してみたら、あっさりうまくいった。

よし。

[ 2月3日全て ]

2006年6月29日 (木)

SubversionSSH port forwarding 経由での svn+ssh

普段プライベートネットワーク内で、svn+ssh で接続している Subversion リポジトリSSH 経由で port fowarding して接続するようにする。

 [ノート PC] -- [ゲートウェイ] -- [リポジトリのあるサーバ]
                gw.example.com    192.168.0.x

ポートフォワーディング用 SSH ラッパー

例えば svn-gw-ssh という名前で以下のファイルを作成:

 #!/bin/sh
 HOST_NAME=$1
 shift 1
 ssh -f -L 8023:$HOST_NAME:22 gw.example.com sleep 10
 ssh -p 8023 -o HostKeyAlias=$HOST_NAME localhost $@

svn 用ラッパーも書いておく

例えば svn-gw という名前で以下のファイルを作成:

 #!/bin/sh
 SVN_SSH=svn-gw-ssh svn $@

使う

これで例えば svn+ssh://192.168.0.x/var/repos でチェックアウトした作業ディレクトリ上をプライベートネットワーク内外で、更新したりコミットしたりできるようになる。

プライベートネットワーク内からは今まで通り。

 svn update

プライベートネットワーク外からは

 svn-gw update

のようにする。

これで

と合わせて随分外部で作業できるようになった。 それだけ、外部でもやれる仕事が増えたということでもあるが。

[ 6月29日全て ]

2007年1月6日 (土)

connect.c を使って SOCKS サーバ経由で社内サーバへ SSH 接続

以前社外から社内 Web サイトへのアクセスは autossh + FoxyProxy を使って SOCKS 経由で直接できるように設定した (記事)。 また UnisonSubversion もそれぞれ SSH port forwarding 経由で直接アクセスできるようにしてある (Unison の記事Subversion の記事)。

しかし社外から社内サーバへの SSH 接続(やファイル転送)は、以前として一旦中継ホストに接続(転送)してから再度接続(転送)していて面倒であった。

調べたところ Shun-ichi GOTO氏の SSH プロキシコマンド connect.c を使うと SOCKS サーバ経由で直接接続できるようなので設定してみた。

 [クライアント:8090] -- SOCKS -- [ゲートウェイ] -- [社内サーバ]
                                 gw.example.com    192.168.1.x

インストール

Debian なので apt-get で。

 apt-get install connect-proxy

SSH の設定

~/.ssh/config に以下の行を追加。

 Host 192.168.1.*
   ProxyCommand /usr/bin/connect-proxy -S localhost:8090 %h %p

192.168.1.* に接続する際は、connect-proxy を使ってローカルホストの 8090 ポートの SOCKS を通るようにする設定。

SSHSOCKS サーバにする

autossh を使って SSHSOCKS サーバを立てる

 autossh -N -f -D8090 gw.example.com

これで準備 OK。

使ってみる

SSH 接続
 ssh 192.168.1.x

で接続を確認。

Konqueror (KDE)
 fish://192.168.1.x/

で直接ブラウズ、読み書き可能なことを確認。

Unison

普通に 192.168.1.x と同期できることを確認。

CVS

普通に 192.168.1.x 上のリポジトリに対して cvs update できることを確認

Subversion

普通に 192.168.1.x 上のリポジトリに対して svn update をかけるとアップデートし終わって最後に

 FATAL: output (local) failed, errno=32

というエラーがでる。

便利

Subversion だけちょっと気がかりだれど、その他はうまく行っている感じ。

これでかなり手軽に接続、転送できるようになった。 便利、便利。

追記 (2009年2月23日)

一時的に connect.c を通らないで直接接続する際には 'ssh -o ProxyCommand=none' とする。

 例:
 SVN_SSH='ssh -o ProxyCommand=none' svn update
[ 1月6日全て ]

2007年10月10日 (水)

今日のさえずり - Google カレンダーに初めてログイン。

  • 16:19 この間ノート PC をシャットダウンしたので、autossh が止まっているのを忘れてた。どうりで svn でコミットできないわけだ。
  • 16:59 ちょっとだけオフィスが暑い時に、窓を開ければよいということを随分しばらく忘れていたようだ。空調より気持ちいい。*Tw*
  • 17:12 PStart から Twit が自動起動して、休暇前に使い始めたことを思い出した。*Tw*
  • 18:09 Google カレンダーに初めてログイン。 *Tw*
  • 21:50 ルービックキューブ、次は LBL をマスターする。
  • 24:20 F2L こんなに覚えるパターンがあるのか……。
[ 10月10日全て ]

2009年8月12日 (水)

今日のさえずり - 哭きの竜のポーズの人発見(多分寝てる)

rimage:/nDiki/Flickr/3819175819.jpg

2009年08月10日

  • 09:31 雨的にひどいタイミングで家を出発して乗車。 [mb]
  • 09:35 今日の京浜東北線はゾクゾクするね! (冷房と濡れた靴) [mb]
  • 10:05 出社。神田川も増水してる。 L: 東京都千代田区東神田3 *P3
  • 10:26 ナポレオンやりたい。 *P3
  • 10:50 ActivePerl 5.10 を 5.8 に何で戻しておいたのか思い出した。 5.10 用の PAR::Packer およびその他 PPM パッケージ作ってなかったからだ。 *P3
  • 12:27 Happy Birthday to 後ろの人! (粗品授与) *P3
  • 12:35 「しゃんしゃん祭」を「しゃしん祭」と見間違えて喰らいついた。 *P3
  • 13:11 RHODIA メモカバー #10 と Walkie Pen BOLD [Flickr] http://tinyurl.com/kl6yol
  • 14:03 自分でビルドした PAR::Packer ようやくはいった。 ActiveState の PAR パッケージの PROVIDE が PAR:: となっているところを PAR と修正して PAR をインストールしなす必要があった。 *P3

2009年08月11日

  • 11:11 return foo = bar ? true : false; とか、やめてほしい。 *P3
  • 12:43 FriendFeed の友達リストの一括整理の仕方をようやく把握した。 *P3
  • 12:49 FriendFeed からポストしてみる。 http://ff.im/-6qNVn
  • 12:52 2009年8月8日の歩行: 3515歩、2.69km、33分、4.84km/h、消費 130.6kcal、脂肪燃焼 18.7g、1.7エクササイズ。 *P3
  • 12:53 2009年8月9日の歩行: 4570歩、3.51km、41分、5.02km/h、消費 171.9kcal、脂肪燃焼 24.5g、2.4エクササイズ。 *P3
  • 12:55 2009年8月10日の歩行: 4801歩、3.82km、35分、6.37km/h、消費 179.7kcal、脂肪燃焼 25.7g、2.6エクササイズ。 *P3
  • 16:32 哭きの竜のポーズの人発見(多分寝てる)。 *P3
  • 18:25 Dropbox がつまってリズムが崩れた。 *P3
  • 18:38 あ、/home が 6.9MB しか残っていなかった。 *P3
  • 18:57 ソフトウェアダウンロードアーカイブを一部 microSDHCカードに移動して /home を広げている最中。 *P3

2009年08月12日

  • 09:31 今年の夏コミ日程を確認。8月14日から8月16日か。今週末なのね。 [mb]
  • 09:46 ソフマップ新店舗について。 L:秋葉原http://movapic.com/...
  • 12:24 2009年8月11日の歩行: 7514歩、6.01km、55分、6.49km/h、消費 282.5kcal、脂肪燃焼 40.4g、4.1エクササイズ。 *P3
  • 12:34 茶月のお持ち帰り限定お買い得セールってなんだ? あの店舗でイートインあるの? (と書いていて配達という選択肢の可能性に気づいた) [mb]
  • 12:37 水鉄砲って100円しないのな。 L:シモジマ [mb]
  • 12:49 クーピーペンシル買った。 [mb]
  • 12:54 マーボードワーフ。 [mb]
  • 12:57 @shuwatto クーピーペンシル、缶箱のデザインも昔と同じです。逆にキャラクター物とかお店で見つかりませんでした。 [mb]
  • 13:21 @HeroesC 子供用のクーピーペンシル店頭で見たのですが、あれ子供にも短すぎたりしないですか? (値段的にも割高感があったので今日は普通のをチョイス) *P3
  • 14:57 社内サーバにはいっている svnsvn merge --reintegrate できないバージョンです。 *P3
  • 15:42 危うくセブン-イレブンで生茶パンダ先生 in ボトル買うところだった。手にしたけど考えてみたら777円も出せん。 [mb]
[ 8月12日全て ]

2009年11月9日 (月)

今日のさえずり: たまにオッサンみたいな驚き方する

rimage:/nDiki/Flickr/4100087863.jpg

2009年11月09日

  • 08:18 ベンザブロック L服用。 [mb]
  • 09:27 駅が混沌としている。 [mb]
  • 09:32 山手線運転再開しているのか。京浜東北線混雑にはもう影響しないかな? [mb]
  • 09:40 京浜東北線田町駅で山手線内回りと並走。山手線も空いている。 [mb]
  • 12:39 ベンザブロックL服用。
  • 12:42 「たまにオッサンみたいな驚き方する」って言われてしまった。
  • 12:50 フグ田マスオ28歳。 RT @wtnabe: @Naney そういうときのために「マスオさんが驚いたときのマネ」を体得しとくといいですよ。
  • 14:08 うーん、喉がイガイガするので飴買ってくる。
  • 14:15 プロポリスのど飴にした。プロポリス成分はきっと気休め程度しか入ってないんだろうな。 [mb]
  • 14:23 UHA味覚糖のプロラボ プロポリスのど飴が予想以上にビリビリくる。刺激的で赤面。
  • 14:27 @Michiaki 初めて舐めたんですが、これって効きますか?
  • 15:10 svn2cl 使った。まずまず使える。
  • 17:26 喉のイガイガがおさまったけれど、プロポリスのど飴のせいなのかベンザブロックLのせいなのか、はたまた自然治癒なのか不明。
  • 19:05 また reStructuredText 使いたくなってきた。
  • 19:18 セブン-イレブン限定 ZAKU II。 http://movapic.com/...
  • 19:29 隣の人が日本酒臭い。酒臭いじゃなくて日本酒臭い。 [mb]
  • 21:11 @maru_kei 確かに体臭+香水はきついよね。 [mb]
  • 21:48 @maru_kei あ、今読みました。オメデトウ!
  • 23:58 なんとか日付が変わる前に布団に入った。 [mb]
[ 11月9日全て ]

2009年12月2日 (水)

今日のさえずり - ベッド無くなったけど、つい迂回して移動してしまう

2009年12月01日

2009年12月02日

  • 09:25 家の近くの月極駐車場がタイムズになるようだ。昨日欠けてたコンクリ埋めたり柵取っ払ったりしてたのはそのためか。 [mb]
  • 09:44 McCafe の CM 好き。和服で大挙するやつ。 [mb]
  • 10:22 Content Management System の略で CMS と言っていたのが、いつの間にか Customer Management System とごっちゃにされているという危惧。
  • 11:36 レンタルベットの引き取りが完了したらしい。
  • 12:13 ベットじゃなくてベッドだった。いつも間違える。
  • 12:16 Tサイト本登録完了してた。
  • 12:39 MovaTwitter でメッセージフッタをつけないように設定変更した。RT についちゃうとなんか良くない気がして。 #movatwi
  • 12:43 2009年12月1日の歩行: 4739歩、3.68km、39分、5.57km/h、消費 178.5kcal、脂肪燃焼 25.5g、2.5エクササイズ。
  • 12:57 貴金属刑事。警視庁捜査一課刑事。警部補。 http://bit.ly/7TNOtY
  • 15:38 C# にも const な参照型欲しい。 #csharp
  • 20:11 昨日から始まっている(らしい)タイムズの工事、まだ全然できてないのに11月24日営業終了の張り紙。意図不明。使い回し?
  • 21:24 ベッド無くなったけど、つい迂回して移動してしまう。
  • 25:22 西友で買った100円しないハサミ、ぜんぜん切れない。安物買いの銭失い。
[ 12月2日全て ]

2010年10月22日 (金)

今日のさえずり: 実写CG映画化って矛盾だと思わないの?

2010年10月22日

  • 07:19 言わないと出てこないんですね。eneloop コーナーでウロウロしている人チラチラいました。 RT @takunosuke: 店頭には出てないのです RT @Naney: KBC-L2BS http://amzn.to/a33gUJ アキヨドで見かけなかった。
  • 11:46 git status とやるとことを svn status とやってしまう手癖。
  • 11:55 向こうで Visual SourceSafe の管理モデルと用語にハマっている人がいる。誰もが通る道(そしてできれば通りたくない道)。
  • 12:06 弁当 350円。 (@ 向日葵 和泉町店・カレー食堂) http://4sq.com/9oazrC
  • 12:27 明日はいつもと違う図書館に行ってみようかなと思い、Google マップで徒歩時間チェックしているところ。どこも同じぐらいの遠さ。
  • 12:38 Evernote 2.0 Beta for Android 106218 に更新。オフラインでの検索はやはりまだできないので、いくつかはオフラインノートブックから外そう。
  • 13:16コーヒー 100円。
  • 20:08 実写CG映画化って矛盾だと思わないの?
[ 10月22日全て ]

About Me

Naney Naney

Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

About nDiki

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。

#nNote タグがついている記事は他の記事に比べて、より断片的・未整理・不完全なちょっとしたノートです。まだ結論に至っていない考えなども含まれます。頻繁/大幅に更新したり削除したりすることがあります。

※本サイトの内容は個人的見解であり所属組織とは関係ありません。

Other Notes

ナレッジベースアプリケーション Obsidian で書いているノートの一部を notes.naney.org で 公開しています。

月別インデックス
Process Time: 0.223598s / load averages: 0.32, 0.36, 0.38
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker