nDiki : FreeBSD

FreeBSD

2004年6月11日 (金)

Unison + Zebedee

記事「Unison で展示会機器のセットアップ」に、

wtnabe 2004-06-10 15:51:09 rsync もまともな認証とは呼べないような気がしますが。。。同じことをするなら tcpwrapper を使うって形になるんでしょうけど、Zebedee などで認証を掛けるともっと融通が利いてなおかつセキュアなんじゃないでしょうか。

という貴重なコメントをいただく。

Zebedee 最近使ってなかったな。ホスティングサーバ(FreeBSD)がSSH接続を提供してくれていなかった時は、Linux BOX からZebedee 経由で telnet したりmirror したりしていた。

ちなみに今回の用途では、通信路の暗号化はあまり重視していない(社内ネットワークで、対象ファイルはもともと皆が閲覧できるものだし、端末の前にも座れるから)。

Unison Soket メソッドでのサーバ側の問題

  • 認証なし
  • 接続ホストによるアクセスコントロール不可
  • 同期対象となるローカルファイルの制限不可。

というのが問題。

c:ドライブ全体(だけでなく全てのドライブ)をパスワード無しで「読み書き可能なWindowsファイル共有」しているような感じであり、気持ち悪い。

rsync サーバの認証

  • パスワード認証。平文では流れない。パスワードファイルは自体は平文で管理。
  • 接続ホストによるアクセスコントロール可。
  • 同期対象となるローカルファイル/ディレクトリは指定される。

平文でパスワードが流れることはないし、Unison でもこれぐらいの認証ができれば今回の用途では十分という感じ。

Unison + Zebedee

Windows 同士だと結局一方は Unison を Socket メソッドで起動しなければならない。 そのポートへは認証有のZebedeeトンネルで接続するとして、外部からは直接アクセスできないようにしなければならないので面倒。

Zebedee 自体はナイスなプログラムではあるのだが、Unison と組み合わせには使えないかな。 普段使いには Unison + SSH だし。

Windows

本家に Windows 版もあるのか。 インストーラの形になっているがインストールされる zebedee.exe は単体でも動く。 Unison との連携は別にしても、入れておいて損はないのでこれもUSBメモリにいれておこう。

[ 6月11日全て ]

2004年6月25日 (金)

納品作業

CD-Rで用意したデータを配置するのに、mount しようとしたがうまくいかない。 …FreeBSD か。 よく知らぬ。

とりあえず自分の Linux BOX から scp で転送しておく。

しかし約束の時間にいったのにオフィスの片隅で立ったまま30分近く待たされるなど、大手のやる事は理解に苦しむ(もちろん多くの大手はそうではないと思うが)。

[ 6月25日全て ]

2005年5月4日 (水)

FreeBSD 上の Unisonアップグレード

すこし前に sidUnison が 2.10.2 になったのにともなって、FreeBSD なホスティングサーバ上の Unison (2.9.1) と同期できなくなってしまった。

ということでビルドしなおし。 まずは Ocaml から

 wget http://caml.inria.fr/pub/distrib/ocaml-3.08/ocaml-3.08.3.tar.gz
 tar zxvf ocaml-3.08.3.tar.gz
 cd ocaml-3.08.3
 ./configure -prefix /tmp/naney
 make world
 make opt
 make install

でその Ocaml を使って Unisonビルド

 tar zxvf unison-2.10.2.tar.gz
 cd unison-2.10.2
 PATH=$PATH:/tmp/naney/bin
 gmake UISTYLE=text
 ./unison -version
 cp -p unison $HOME/local/bin
[ 5月4日全て ]

2005年6月6日 (月)

[ WiKicker ] Storable 永続化データの互換性

fkimura 氏から WiKicker の障害レポートをいただいた。 Perl 5.8.6 へ移行した環境で WiKicker 0.26 を試してみたところエラーになってしまうとのこと。

 "Error
 action: do_read: Byte order is not compatible at blib/lib/Storable.pm
 (autosplit into blib/lib/auto/Storable/thaw.al) line 366,
 at /usr/local/lib/perl5/site_perl/5.8.6/WiKicker/DB/File.pm line 161
 at /usr/local/lib/perl5/site_perl/5.8.6/WiKicker/CGI/AbstractController.pm line 93"

(FreeBSD 4.11-RELEASE-p9)

Storableエラーを吐いている。 Storable データ形式に互換性のない環境 (Perl and/or Storable) 変化があったようだ。

例えば Storableマニュアルによれば 64bit integer をサポートするように構築された Perl 5.6.0 や 5.6.1 で Storable 2.02 以前を使って書き出したデータを他の環境で読み出すと 'Byte order is not compatible' エラーが出るとある。

確認したところ前のバージョンは Perl 5.6.2 だそうなので、もしかしたら上記の非互換性にあたってしまったのかもしれない (FreeBSDPerl って 64bit integer サポートでビルドされるようになっている?)。

WiKicker での対応方法

WiKicker で使用している Perlアップグレードで上記問題にあたった場合、一番簡単な方法は Storable で書き出しているページ情報ファイルを一旦全部消してしまうという方法。

WiKickerデータベースディレクトリ (wikicker.database.directory プロパティで指定しているディレクトリ)の下の、info/basic/* を全て消してしまう(一応バックアップとしてコピーした方が良い)。

この場合、各ページの「最終更新時刻、最終更新者名、要約文」が消えてしまうが、これらの消えてしまった情報は次にページを更新した時に最新の情報で上書きされる。

WikiPage そのものおよび古いリビジョンは影響がなく全て残っているので、通常の運用ではまあ許容できる範囲の対処方法か。

情報ファイルを消したくない場合は、コンバートする必要があるけれど古い Storable データを読み出せる環境で export して、新しい形式で書き直す必要があるので作業する人にとってもちょっと面倒かもしれない。いや、新しい Storable ならば $Storable::interwork_56_64bit あたりを使えば両方をきりかえて読めそうであるので、新しい環境だけあればいいのかな。

[ 6月6日全て ]

2006年3月2日 (木)

FreeBSDApache::Htpasswd

WiKicker認証ドライバの1つとして、まずは Apachehtpasswd パスワードファイル(AuthUserFile ディレクティブ用パスワードファイル)形式のものを作成することにする。 これなら htpasswd で作成することができるので、最悪最初の段階では WiKicker に登録・削除機能を入れないで済む。

Perl からこのパスワードファイルを扱うモジュールとしては Apache::Htpasswd や、Authen::Htpasswd がある。 CPAN にある CGI-Application-Plugin-Authentication は前者を、Catalyst-Plugin-Authentication-Store-Htpasswd では後者を使用している。

機能的にはほぼ同じか。 Authen::Htpasswd の方がユーザ名に対応するオブジェクトを取得するメソッドがあり便利といえば便利だが、まあなくても困らないだろう。

ということで今回は、依存モジュールの少ない Apache::Htpasswd を選択した。 Perl 5.005_03 にはない warnings プラグマが使われているが、Htpasswd.pm の

 use warnings;

1行を削除すれば問題無し。

FreeBSD 4.4-RELEASE #3 + Perl 5.005_03 + Apache-Htpasswd 1.7 だと、crypt 関連のテストケースが失敗する(not ok 17)のがちょっと気になるところ。 MD5 ベースのパスワードの読み書きは問題ないので、この環境ではこちらを使うことにしよう。

[ 3月2日全て ]

2006年8月16日 (水)

LinuxWorld Conference & Expo

rimage:/nDiki/Flickr/219136331.jpg

サンフランシスコの Moscone Center で8月14日から8月17日まで開催されている LinuxWorld Conference & Expo の Expo の方を見にいってきた。

受付にある PC に事前登録してある名前を入力し、Print ボタンを押すとカウンターの方で手続きが行われる (最初 Continue を押したら入力フォーム出てきて、「え、面倒」と思ってしまった)。

名前の印字されたプラスチックカードをホルダーに入れて首から下げ展示会場へ。

.org Pavilion

まず向かったのは .org Pavilion。

入口を入って左手奥にあるのだが、そこだけ別世界の雰囲気だ。

なんというか、だらっとしている。 企業ブースのように営業目的があるわけではないので、媚びる風がなく勝手きままだ。 そこら辺で飯食ってるし。

置いてあるパンフレットは「What is 〜?」という紹介的なもの。

聞きたいことがあれば、話かければよいのだが考えてみると特段これといってなかったりする。ぐるっとひとまわり。

Ubuntu というキーワードは何カ所かで見かけた。それなりにはやっているのか?

企業ブース

大きなところは、NOVEL、IBM、AMD、HP、MOTOROLA、ORACLE、INTEL あたり。 特別注目すべきところはあまり感じられなかったかな。

全体を見るとモバイル系や、Virtualization が目についた感じだ。

image:/nDiki/Flickr/219136012.jpg image:/nDiki/Flickr/219136212.jpg image:/nDiki/Flickr/219138807.jpg

出る前に Debianブースによって T シャツを買ってきた。 多少は donation になるかな?

Information


[ シカゴ・サンフランシスコ出張 2006 ]

[ 8月16日全て ]

2006年12月4日 (月)

SpeedyCGI 以下で WiKicker がうまく動かない?

WiKicker ベースのシステムが稼働しているホストが FreeBSD 5.2.1-RELEASE から FreeBSD 6.1-RELEASE に更新されるのにともない、再インストール作業を行った。

動作確認をしたところ CGI プログラムは動くものの Perl モジュール中の DATA セクションが読めていないようなエラー表示がされた。

もしやと思い SpeedyCGI を外したら正常動作。

SpeedyCGI 下で動くことを考えて、DATA セクションを1度しか読まないようにコーディングしてあるはずなのだが、はて。

他の作業もあり細かいチェックができなかったのでもしかしたら違うところでの問題かもしれないが、ちょっと厄介。

[ 12月4日全て ]

2010年9月2日 (木)

今日のさえずり: 「さくりんごはん」が何だか知りたくてたまらない

  • 09:32 今日はいい日だ。
  • 10:19 TeraStation PRO につないでた USB 外付け HDD HD-ES500U2、Linux BOX につないだけど scsi 5:0:0:0: Device offlined - not ready after error recovery。
  • 10:24 購入したの2年ちょっと前。 http://bit.ly/cKXfQh 保証切れとるな。
  • 11:01 バッファローの電源内蔵 USB 2.0 用外付け HDD は HD-ESU2 -> HD-HESU2 -> HD-EBU2 という流れなのかな。 http://amzn.to/9eFDhj
  • 11:05 Gmail(日本語)に優先トレイ機能きた。
  • 11:15 APN spモードで、spモードメール -> 自 Gmail-> K-9 Mail プッシュ受信できましたよ。 #Xperia RT @momiji_m: @Naney spモードからGmailに送ったときもk9mailてプッシュされますか?
  • 11:43 @Wolfey5150 mopera U の時も K-9 Mail でのプッシュ受信遅れることがあったのでspモードの方が良くないかはまだ判断つかないです。よりコネクションが切れやすいとかあるのでしょうかね。
  • 11:45 午前中は HDD の障害と代替の調査でほぼ終わった。
  • 11:55 @momiji_m 普段 Xperia 標準 Gmail アプリは使ってないんですが、そういえば今みたら「Gmail の同期」はオンになってました。オフにすると影響あるのかな。
  • 12:00 @Wolfey5150 普段 Xperia 標準 Gmail アプリは使ってないんですが、そういえば今みたら「Gmail の同期」はオンになってました。オフにすると影響あるのかな。
  • 12:07 サンドイッチとおにぎり 375円。 (@ セブン-イレブン神田佐久間町店) http://4sq.com/cEfW1k
  • 12:09 やっぱり「Gmail の同期」オフにしても K-9 Mail プッシュ受信はされた。当たり前だな。
  • 12:24 @momiji_m 本家の K-9 Mail です。3.001 でした。
  • 12:53 「さくりんごはん」が何だか知りたくてたまらない。
  • 13:15 @Wolfey5150 標準 Gmail アプリは Advanced Task Manager で kill してあります。
  • 13:50 Evernote for Windows 3.5.6.2844 きた。
  • 14:17 Dell + 佐川急便の集荷きた。ノート PC よ、いってらっしゃい。
  • 16:03 クリームたっぷりシュー 120円。 (@ ファミリーマート神田佐久間町店) http://4sq.com/biJuCj
  • 16:49 CouchDB を Windows に入れてみてる。起動したら Erlang Shell のウィンドウがオープン。
  • 16:54 ああ、何? Evernote for Windows アップデートしたら SKKIME での入力が駄目駄目になっちゃったよ。
  • 17:34 CouchDB は基本機能としてリビジョン管理をもっているのか。MongoDB はないのかな。
  • 17:52 大きなバイナリファイルは MongoDB の GridFS よりも CouchDB の添付の方が遅いな。前者は Perl ドライバから、後者は Web ブラウザから Futon 経由でなのでやり方によっては違う可能性もあるけど。
  • 18:04 Futon からだと POST になるけど、直接 PUT するともっと速い?
  • 22:41 ハイテックCコレトに Lumio っていう本体が出てたのかあ。今度文房具屋に見に行かなくては。
  • 23:04 spモードメールを kill してあってもメールを受信すると通知がちゃんと出るんだな。これは良い。 #Xperia
  • 23:11 RT @kunihirotanaka: さくらのVPSですが、間もなくDebian Ubuntu Fedora CentOS 32bit/64bit のコンパネからのインストールに対応します。FreeBSDもamd64にて対応できればと思います。パーティション指定なども可能です。
  • 23:13 さくらのVPS、Debian GNU/Linux 最初から対応されるようになったらちょっと契約しちゃうかも。
  • 23:28 今から SBS かあ: @Naney2011年12月に Yahoo へ転職しソーシャルブックマーク開発に従事します。入社準備金は200万円です。 http://shindanmaker.com/44832 #webtenshoku
[ 9月2日全て ]

2015年4月19日 (日)

AirMac Time Capsule共有フォルダとローカルディレクトリとを Unison で双方向同期させる

昨日 Linux から AirMac Time Capsule をマウントできるようになったので次はファイルの双方向同期の設定。AirMac Time Capsule の共有ディスク上に写真を置いて家族共有するのだけれど、AirMac Time Capsule にしかファイルが無い状態は当然避けたいので、ローカルディレクトリとファイル同期しておく。

Unison File Synchronizer

OS X 用の良さそげな双方向ファイル同期アプリが無いかなと探していたんだけれど、これっというのが無いので結局 LinuxFreeBSD 上で長年使っている Unison File Synchronizer を使うことにした。 OS X だといちおう GUI 版もある。Unison はメンテが止まるかなーと思いつつもたまにアップデートされているので今のところまだしばらく使えそう。

OS X と同期

Unison の設定は下記の通り。違う共有ディスクがマウントされている時に間違えて実行しないように mountpoint を指定。パーミッションの変更ができなくて Unisonエラーになるので perms = 0 にしておいた。

 times = true

 root = /Users/naney/archive/family
 root = /Volumes/Data/archive/family
 mountpoint = family-photo

 perms = 0

Linux と同期

Unison の設定は下記の通り。/mnt にマウントした状態で実行する。マウント間違い対策として mountpoint を指定。

 times = true

 root = /home/naney/archive/family
 root = /mnt/archive/family
 mountpoint = family-photo
[ 4月19日全て ]

2021年1月5日 (火)

最近の Unisonビルドする

双方向ファイル同期化ツール Unison File Synchronizer、 Mac で使っているのが Unison 2.48.6 の GUI 版なのだけれど、古いせいか macOS Catalina だと「Install command-line tool」 が機能しない(/usr/bin にインストールしようとしているからかな)。

macOS 上で text UI 版がちょっと使いたい & GUI 版も新しいのにしたいなと思ってビルドとかした。

現在の Unison のバージョン

2021年01月05日時点での安定版は 2.51.3

Homebrew で入れる

 $ brew install unison

で text UI 版の「unison version 2.51.3 (ocaml 4.10.0)」が入る。GUI 版は入らない。

macOS Catalina 上でビルドする

Unison 最新版のバイナリ配布が見当たらないのでビルドしてみる。 Xcode が必要。

 $ xcode-select --install

で入る Command Line Tools だけだと text UI 版の Unison しかビルドできないので App Store から Xcode をインストールした。

OCaml は Homebrew ので済ます。

 $ brew install ocaml

今日時点で入るのは OCaml 4.10.0 だ。次に Unison 2.51.3 をビルドする。

 $ cd ~/tmp
 $ curl -OL https://github.com/bcpierce00/unison/archive/v2.51.3.tar.gz
 $ tar zxvf v2.51.3.tar.gz
 $ cd unison-2.51.3
 $ make all

make だけだと text UI 版しかビルドされないので make all してみた。が残念 GUI 版はエラーで途中で止まった。今はうまくビルドできないのかもしれない。

諦めて make で text UI 版だけバイナリを得ることにした。 make 後

 $ ./src/unison -version

で実行できることを確認。 ./src/unison を適当なところにコピーしておく(これなら brew install unison で十分だった)。

FreeBSD 上でビルド

ローカルホストの Unison とリモートホストの Unison のバージョンが合っていないと同期できないのでリモートホスト側 (FreeBSD 9.1-RELEASE-p24) でも同じバージョンのものをビルドする。さくらのレンタルサーバ プレミアムで root 権限はないのでユーザー権限にて。

まずは OCaml。最近の OCaml は opam というのでインストールして使うのが流儀らしい。 opam をインストール。

 $ cd ~/tmp
 $ mkdir bin
 $ curl -OL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh
 $ BINDIR=$HOME/tmp/bin sh install.sh

リモートホストの環境に合ったプレビルドが無いとエラーが出て install.sh ではインストールできず。

OCaml の前に遡って opam のビルドをする。

 $ cd ~/tmp
 $ curl -OL https://github.com/ocaml/opam/archive/2.0.7.tar.gz
 $ tar zxvf 2.0.7
 $ cd opam-2.0.7
 $ gmake cold CONFIGURE_ARGS="--prefix ~/tmp/opam"
 $ gmake cold-install

ビルドできた。opam を初期化する。

 $ PATH=$HOME/tmp/opam/bin:$PATH
 $ opam init

gpatch が無いとエラーで止まった。 patch へのシンボリックリンクで gpatch を作ってイケるかなと思ったけど今度は別のエラーで止まる。うーん。 opam で OCaml をインストールするのは断念。

OCaml のドキュメントを読んだら今まで通り configure して make も普通にできるじゃない。

 $ curl -OL https://github.com/ocaml/ocaml/archive/4.10.0.tar.gz
 $ tar zxvf 4.10.0.tar.gz
 $ cd ocaml-4.10.0
 $ ./configure --prefix $HOME/tmp
 $ gmake
 $ gmake install

次に Unison 2.51.3 をビルドする。出来上がったバイナリは今使っている Unison 2.48.3 と併用できるように別のディレクトリへ。

 $ cd ~/tmp
 $ curl -OL https://github.com/bcpierce00/unison/archive/v2.51.3.tar.gz
 $ tar zxvf v2.51.3.tar.gz
 $ cd unison-2.51.3
 $ PATH=$PATH:$HOME/tmp/bin
 $ gmake
 $ ./unison -version
 $ mkdir -p $HOME/local/unison-2.51.3/bin
 $ cp -a src/unison $HOME/local/unison-2.51.3/bin

サイト

[ 1月5日全て ]

About

Naney Naneymx

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

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

Process Time: 0.023681s / load averages: 0.37, 0.48, 0.44