トップ(最新) | <前

nDiki : オフライン

オフライン - offline、off-line

  1. ネットワークにつながっていない状態になっていること。

関連情報

スポンサード リンク

Related term

2006年2月11日 (土)

野良パッケージと依存 Perl モジュールインストールセット をCPAN::Site このエントリーを含むはてなブックマーク

WiKickerオフラインで簡単にインストールできるようにしたい。 WiKicker 自体は

 perl Makefile.PL
 make
 make test
 make install

で簡単にインストールできるのだが、事前に CPAN にある依存 Perl モジュール(とそれらが依存している Perl モジュールら)をインストールしておかなければならない。

オンライン環境では CPAN.pm を使って芋蔓式にインストールできる。 WiKicker は次回のリリースから Module::Install を採用するので、perl Makefile.PL 時にそれらを行うことができるようにもなる。

しかしオフライン環境になると、話は変わってくる。

普通にやろうとするとあらかじめ依存関係を全部洗い出して事前にダウンロードしておき、依存関係の順番を考えながらインストールしていかなければならない。

これがかなり面倒。しかも各モジュールのバージョンアップにともない、その時その 時で変化する可能性があるので、適宜確認しなければならない。

でれば CPAN.pm の力を借りたい。

CPAN.pm はインストール時に $CPAN::Config->{keep_source_where} (通常 ~/.cpan/sources) に溜め込むので、これを CD-ROM 等に書き込んでオフラインインストールで使用することができる (cf. perldoc CPAN)。

だいたいはこれでうまくいくのだが問題もあって、この方法だと(WiKicker などの)野良パッケージを、うまく一緒にすることができない。

野良パッケージを扱うには CPAN::Site、あるいは CPAN::Mini::Inject あたりを使えば良さそうだ。

今回はまず、CPAN::Site での手順を調べてみる。

~/perl-5.8.8 以下にクリーンな Perl v5.8.8インストールしてインストールセットを作成していく。

@ CPAN::Siteインストールする (オンライン)

 rm -rf ~/.cpan
 ~/perl-5.8.8/bin/perl -MCPAN -e shell
 cpan> install LWP
 cpan> install CPAN::Site
 cpan> exit

これで CPAN::Site が使えるようになるとともに、CPAN::Site と LWP および依存モジュールのソースアーカイブが ~/.cpan/sources 以下にたまる。

WiKickerインストール中に libwww-perl を途中で入れると CPAN.pm が使ってこともあってかうまくいかないので、先に一緒に入れてしまう。

@ インストールしたい野良パッケージ用のローカル CPAN サーバを作成する

野良パッケージら (今回は WiKicker のみ)を含んだ ローカル pseudo CPAN サーバを作成する。

 mkdir -p ~/public_html/CPAN/authors/id/N/NA/NANEY
 cp WiKicker-0.xx.tar.gz ~/public_html/CPAN/authors/id/N/NA/NANEY
 ~/perl-5.8.8/bin/mkpackages ~/public_html/CPAN

CPAN::Site に含まれている mkpackages を使うことで、CPAN::Site が参照することのできるインデックスファイルが作成される。

@ WiKicker と依存するモジュールをインストールする (オンライン)

次に ローカル CPAN サーバと、CPAN (ミラー) からパッケージを自動ダウンロードしてインストールする。ここでは CPAN.pm のかわりに CPAN::Site を使用する。

 ~/perl-5.8.8/bin/perl -MCPAN::Site -e shell
 cpan> o conf urllist unshift http://localhost/~myname/CPAN
 cpan> reload index
 cpan> install WiKicker
 cpan> exit

ここでローカル CPAN サーバを file:/// 等で指定すると、そこから読みとったファイルは ~/.cpan/sources/ 以下にコピーされないので一箇所にまとめることができないので注意 (かなりはまった)。

これが終わると、WiKicker とそれに必要なファイルが ~/.cpan/sources にたまる。

これを適宜アーカイブして保存する。

@ オフラインインストールする

別の環境で例えば /usr/local/perl-5.8.8 にインストールされた PerlWiKickerオフラインインストールするとする。

先の工程で作成したファイルセットが /tmp/CPAN においてあるものとする。

 /usr/local/perl-5.8.8/bin/perl -MCPAN -e shell
 # 初期化でオフラインのため CPAN ミラーの選択ができずに URL の入力を
 # 求められたところで file:///tmp/CPAN を指定
 cpan> install LWP
 cpan> install CPAN::Site
 cpan> exit

まずは以上で CPAN::Site が入るで、CPAN::Site で shell を起動しなおす。

 /usr/local/perl-5.8.8/bin/perl -MCPAN::Site -e shell
 cpan> install WiKicker
 cpan> exit

これで /tmp/CPAN から芋蔓式に WiKickerインストールされる。

@ ポイント

Debian のパッケージリポジトリなどとは違って、CPAN は基本的に「一つのリポジトリおよびそのミラー」という概念しかないようである。 したがってモジュールのインデックスファイルも1組しかなく、複数のサイトから異なるモジュールセットを配布するということができるようになっていない。

これに対し、自前パッケージ群用にも1セットインデックスファイルを作って扱えるようにしようというのが CPAN::Site である。

これを用いると「もう一つのリポジトリ」を扱えるようになるが、逆にいうと利用する場合は CPAN::Siteインストールしなければならないということでもある。

スポンサード リンク


[ 2月11日全て ]

2006年2月12日 (日)

野良パッケージと依存 Perl モジュールインストールセット を CPAN::Mini::Inject このエントリーを含むはてなブックマーク

前回は CPAN::Site を用いたオフラインインストールセットを作成した。

今回は空の CPANミラーを作り、そこに野良パッケージを突っ込んで使用する形でインストールセットを作成してみる。

~/perl-5.8.8 以下にクリーンな Perl v5.8.8インストールしてインストールセットを作成していく。

@ CPAN::Mini::Injectインストールする (オンライン)

 perl -MCPAN -e shell
 cpan> install CPAN::Mini::Inject
 cpan> exit

CPAN::Mini::Inject は、インストールセットには必要ない。 ~/perl-5.8.8 にはインストールせずに、普段使っているほうにインストールしておく。

@ インストールしたい野良パッケージ用のローカル CPAN サーバを作成する (オンライン)

以下スクリプト例(エラー処理などは省略)

 #!/usr/bin/perl -w
 use strict;
 use File::Path;
 use CPAN::Mini;
 use CPAN::Mini::Inject;
 my $remote     = 'ftp://ftp.dti.ad.jp/pub/lang/CPAN/';
 my $local      = '/home/myname/public_html/CPAN';
 my $repository = '/home/myname/repository';
 mkpath([$local, $repository], 1, 0755);
 # module_filters で全てのモジュールを対象外にして、空の CPAN ミラーを作る
 CPAN::Mini->update_mirror(remote => $remote,
                           local  => $local,
                           diremode => 0755,
                           trace => 1,
                           module_filters => [ qr/./ ]);
 my $injector = CPAN::Mini::Inject->new;
 $injector->{config}{remote} = $remote;
 $injector->{config}{local} = $local;
 $injector->{config}{repository} = $repository;
 $injector->{config}{diremode} = 0755;
 # CPAN::Mini::Inject リポジトリに追加したあと、
 # CPAN ミラーへ 注入
 $injector->add(repository => $repository,
               module => 'WiKicker',
               authorid => 'NANEY',
               version => '0.xx',
               file => 'WiKicker-0.xx.tar.gz')
  ->inject;

これで、~/public_html/CPAN に野良パッケージの追加された CPAN ミラーが作成される。

@ WiKicker と依存するモジュールをインストールする (オンライン)

 rm -rf ~/.cpan
 ~/perl-5.8.8/bin/perl -MCPAN -e shell
 cpan> o conf urllist pop
 cpan> o conf urllist push http://http://localhost/CPAN
 cpan> reload index
 cpan> o conf urllist push ftp://ftp.dti.ad.jp/pub/lang/CPAN/
 cpan> install WiKicker
 cpan> exit

ここでローカル CPAN サーバを file:/// 等で指定すると、そこから読みとったファイルは ~/.cpan/sources/ 以下にコピーされないので一箇所にまとめることができないので注意。

またCPAN ではモジュールインデックスファイルは1組しか持てないようで、初期設定のままだと野良パッケージを含む CPAN ミラーのインデックスファイルが使われない。 そのため一旦 urllist を空にした後、 自分の CPAN ミラーを指定しインデックスファイルをロードする。 その後にソースパッケージを取得するセカンダリとして通常の CPAN (ミラー)を指定するようにしている。

これが終わると、WiKicker とそれに必要なファイルが ~/.cpan/sources にたまる。

これを適宜アーカイブして保存する。

@ オフラインインストールする

別の環境で例えば /usr/local/perl-5.8.8 にインストールされた PerlWiKickerオフラインインストールするとする。

先の工程で作成したファイルセットが /tmp/CPAN においてあるものとする。

 /usr/local/perl-5.8.8/bin/perl -MCPAN -e shell
 # 初期化でオフラインのため CPAN ミラーの選択ができずに URL の入力を
 # 求められたところで file:///tmp/CPAN を指定
 cpan> install WiKicker
 cpan> exit

これで /tmp/CPAN から芋蔓式に WiKickerインストールされる。

@ ポイント

CPAN::Site を利用して構築した場合は、インストール時にも CPAN::Site が必要だが、こちらはインストールセットの利用には CPAN.pm だけで良いというのが利点。

今回は CPAN::Mini で空の CPAN ミラーを作成し野良パッケージを追加した。

ここで最初から CPAN の最新パッケージの全ミラーCPAN::Mini で作成し、これに野良パッケージを追加してインストールセットを作ってしまうという方法もある。 この場合は後で必要に応じてミラーからパッケージを入れられるというメリットがあるかわりに、ミラー作成のコストがかかるというデメリットがある。


[ 2月12日全て ]

2006年7月3日 (月)

自前 PPM リポジトリの管理 このエントリーを含むはてなブックマーク

Windows Perl アプリケーション用に PPM リポジトリを久しぶりに整理。

自分が使用する PPM パッケージは以下の理由から、以前より基本的に自前でビルド/保存し PPM リポジトリをローカルに作成するようにしている。

  1. 後でオフラインインストールできるようにする。
  2. 「公開リポジトリが無くなった」あるいは「公開リポジトリに欲しいパッケージが無くなった」時に困らないようにする。
  3. 動作確認された組み合わせでの PPM パッケージセットを作成・保持できるようにする。
  4. ライセンス的にクリアなものだけを含むリポジトリを用意する。 (芋蔓式インストールで、ライセンス的にクリアでないパッケージが入ってしまうのを防ぐ)。

@ 手元では以下のように管理

 PPM
  |-- <category>
  |   `-- 8xx
  |       |-- <projects A> [ 公開 / export ]
  |       |   |-- module1.ppd -> (A)
  |       |   |-- module1.tar.gz -> (B)
  |       |   `-- ...
  |       `-- ...
  `-- pool
      |-- module1-x.yy
      |   |-- module1.x.yy.tar.gz
      |   |-- some documents...
      |   `-- build817
      |       |-- module1.ppd (A)
      |       `-- module1.tar.gz (B)
      `-- ...
@ pool
  • pool ディレクトリに「[モジュール]-[バージョン]」ディレクトリを作成する。同じバージョンでも、異なるバージョンは両方とも別々にキープしておく。
  • その下にソース tarball を置く。
  • ライセンス情報ファイルなども置く (touch Perl-License 等空のファイルを作成しておく)
  • PPM パッケージPPM::Make で作成し、その時に使用した ActivePerlビルド番号別にサブディレクトリを作って .tar.gz と .ppd を置く。
@ リポジトリ
  • ActivePerlビルド番号別にリポジトリを作成する。基本的には 6xx 系、8xx 系それぞれの中ではバイナリ互換性がある (PAR などは、ビルド番号に1対1でしか互換性がない)。
  • 必要に応じてカテゴリ別サブディレクトリを用意 (アクセス制限の都合などにより)
  • 必要に応じてプロジェクト毎にサブディレクトリを用意 (プロジェクト毎にパッケージセットを作るため)
  • リポジトリディレクトリからは pool 内の .ppd、.tar.gz へシンボリックリンクを張る。欲しいモジュールのバージョン、ビルド番号を選んでリンクする。
@ 公開
  • SambaApache などで、PPM ディレクトリ全部あるいは特定のリポジトリ部分を公開する。
  • 必要なら export して別サーバに置く。rsync や cp の -L オプションでシンボリックリンクを実ファイルに置き換えてアーカイブを作成する。

[ 7月3日全て ]

2007年4月20日 (金)

FON はあなたの La Fonera が1週間以上オンラインになっていない事を確認しています。 このエントリーを含むはてなブックマーク

ずっと電源入れっぱなしの接続しっぱなしなんだけれど。

FON は平等に FON メンバー同士で WiFi を共有してもらう為に、24時間 La Fonera をオンラインにしてもらうお願いを2007年4月1日からスタートしました。

昨日 FON からメールがきていた。Web ビーコンの入った HTML メール付きで。

FONコミュニティを是非楽しんでもらいたいと思います。La Fonera がオフライン(プラグされていない状態)になって1ヶ月経過すれば、一時的にローミングが中止されます。(一時的にサービスを停止させて頂きます。)

言わんとすることはわかるけれど(そして多分直訳だというのもわかるけれど)、気分良くないなあ。

簡単にハングアップしないようなモノにしてからの物言いにして欲しいところだ。 と思いつつ、AC アダプタを1度抜いて La Fonera リブート。


[ 4月20日全て ]

2007年8月20日 (月)

オフライン中も Gmail チャット機能は Twitter ステータスを記録し続ける このエントリーを含むはてなブックマーク

先日「Gmail のチャット履歴で、Twitter のステータスを保存していこうと思ったが、Gmail にアクセスしていない間は保存されないらしい。」と書いたが、その後オフライン中もモリモリ履歴を取っておいてくれるようになった。

この間はたまたま調子が悪かっただけのようだ。 その日は Twitter が重い日だったからか。 Skype が長時間サービス障害だったから、Twitter に人が流れてきていたとか。


[ 8月20日全て ]

2008年4月10日 (木)

今日のさえずり - みどりの窓口で、明日からの乗車券つかまされてた このエントリーを含むはてなブックマーク

naney:2402587264

@ 2008年04月09日

@ 2008年04月10日

  • 10:20 今日 11:00 から消防訓練との連絡 (今頃)。
  • 11:39 同行者が飛び乗った電車に、乗り込めなかった。L:秋葉原駅[mb]
  • 11:55 Suica + 新幹線切符での初改札通過失敗。秋葉原駅のみどりの窓口で、明日からの乗車券つかまされてた。[mb]
  • 11:58 明日の切符だけれど、JR 側のミスなので有人改札通過にしてもらった。[mb]
  • 12:20 [photo] 明日の乗車券を今日の乗車券に http://tinyurl.com/3hsva7
  • 17:53 熊谷駅までのバスの中で PC 作業しようと思ったが、すぐ乗り物酔い。 L:埼玉県熊谷市原島643[mb]
  • 18:45 イヤスコープGLの「約3500画素」というのが気になる。[mb]
  • 19:03 東京駅着いた。[mb]
  • 19:21 丸善ユナイテッドビーズミニ6穴 5mm 方眼リフィルがあって狂喜乱舞した。当然14パック買い占めた。[mb]

[ 4月10日全て ]

2008年4月30日 (水)

ちょっと複雑なネット用統合アドレス帳 Ripplex このエントリーを含むはてなブックマーク

最近話題になり始めた統合アドレス帳 Ripplex をインストールしてみた。

  • 誰にどのような情報を開示するかを細かく指定できる。
  • リンクを使って友人に情報開示できる。
  • 共有カテゴリを使って友人と情報を共有できる。
  • PMM 検索によって、友人検索できる。
  • Twitter と連携。following リストを取り込んだり、投稿したりできる。
  • Skype と連携。コンタクトリストを取り込んだり、ムードメッセージを設定できたりする。

などが特徴。

相手が情報開示していればリンクや共有カテゴリを使ってその人が使っているネットサービスを知ることができ、それらを使ってコミュニケーションをとることができる。 リンク等を使って共有されなくても、通常のアドレス帳のように手入力することもできるので友人ネットサービス関連のアカウント管理等にももちろん使える。

と機能的にはクールで面白いアプリケーションだ。

もちろん気になる点もいくつかある。

  • Windows / Mac OS X 用なので、Linux ユーザである自分は常用できない。
  • クライアントアプリケーションなのでネットサービス上にデータを置かなくてよいものの、ローカル PC 上のデータは保護されていない。オフラインモードになるがパスワードなしでローカル PC 上にあるアドレス帳は全て見られる。
  • アドレス帳は Windows の場合、c:\Document and Settings\ユーザ名\Application Data\Ripplex で決め打ち(変更できれば TrueCrypt 仮想ドライブボリュームの中に入れておくのだが)。
  • Ripplex を使っている友人が少ないと便利さ/面白さが半減する。
  • 情報開示設定が柔軟にできる分、使いこなすにはそれなりに学習する必要がある。

ネットサービスではないので Linux で使えないのは自分の場合つらいな。 どれぐらい流行るか様子見。


[ 4月30日全て ]

2008年7月30日 (水)

今日のさえずり - ホームレスが電線の皮剥いてる このエントリーを含むはてなブックマーク

@ 2008年07月28日

  • 09:49 先週末からポケモンスタンプラリー2008開始か。今年で何年目?[mb]
  • 12:20 なか卯でテイクアウトした親子丼、ちょっとウニの風味がするんだけれどきっと気のせい。 *Tw*

@ 2008年07月29日

  • 09:45 いつも通りめざマガ GET。L:秋葉原[mb]
  • 12:22 お台場の観覧車無くなるの? まだ1度ものってないのに。
  • 12:58 久しぶりに確認したら自分のアカウントでもオフラインGoogle ドキュメント使えるようになってた。
  • 15:40 下半期の業務目標を立てて時間見積もりを積算したら1889時間になった。何か間違えてる。
  • 19:40 着もじ・ホーダイって、端末購入時に「加入しないと割引額減るよ。すぐ解約してもいいですよ。」に加わりそうだ。[mb]

@ 2008年07月30日

  • 08:38 京浜東北線ドア内側に引っ掻いて書いた落書きが「兄今参上」になっている。[mb]
  • 08:43 「あにいま」で「兄今」が予測変換された POBox Pro 2.0 に驚いている。[mb]
  • 08:51 カフェで資産シールの貼ってあるノート PC を使っているスーツを見ると、ニセモバイラーだとつい思う。[mb]
  • 08:55 ホームレスが電線の皮剥いてる。[mb]
  • 18:34 げっ。heap からの要素の取り出し処理で1カ所不等号が逆になっていて、順番がおかしくなってた。
  • 18:41 P3 で TimeLine 取得処理時、自分の発言が一番上にきたところでそれ以降取得されなくなる問題は、抽出IDに自分自身を入れないようにしたら発生しなくなった(っぽい)。
  • 22:17 NHK はもう Twitter 飽きたの? http://twitter.com/NHK_onair

[ 7月30日全て ]

2008年8月17日 (日)

明日からオフライン このエントリーを含むはてなブックマーク

明日から帰省するのでしばらく(PC からは)オフラインになる。 去年からケータイである程度済ませられるように Gmail やら MovaTwitter やら PC2M やら Flickr アップロード設定やらを整備してきたので、それなりにやってはいけるかなと。

今回は PC 持っていくので nDiki は書きためておくつもり。


[ 8月17日全て ]

2008年9月16日 (火)

Debian GNU/LinuxDropbox このエントリーを含むはてなブックマーク

オンラインストレージサービスの Dropbox が一般公開された。 WindowsMac OS X だけでなく Linux でも使えるというのでインストールしてみた。

@ Windowsインストール

こちらは特筆することなし。ソフトウェアをダウンロードしてインストール。 プリファレンスで Dropbox ディレクトリを c:\home\naney\var\Dropbox に変更したぐらい。

@ Debian GNU/Linux sidインストール

Ubuntsu 用のバイナリはあるのだが、ソースも公開されているので今回はビルドしてインストールしてみる。 以下の手順で Debian パッケージ化してインストール

 sudo apt-get install libnautilus-extension-dev libnotify-dev
 tar jxvf nautilus-dropbox-0.4.1.tar.bz2
 cd nautilus-dropbox-0.4.1
 dh_make --createorig
 fakeroot dpkg-buildpackage
 sudo dpkg --install ../nautilus-dropbox_0.4.1-1_i386.deb

以上で Nautilus 拡張がインストールされる。Nautilus が起動しているなら killall nautilus で一旦止めてから、Nautilus を起動しなおす。 ターミナルから Nautilus を起動すると

 downloading dropbox from http://www.getdropbox.com/download?plat=lnx.x86
 downloading dropbox from http://dl-web.getdropbox.com/u/17/dropbox-lnx.x86-0.6.382.tar.gz
 dropboxd: どのプロセスもkillされませんでした

と出力される。

クローズドソースの dropboxd が ~/.dropbox-dist 以下に自動的にダウンロードされて実行される。

個人的な設定としてプリファレンスで Dropbox ディレクトリを ~/Dropbox から ~/var/Dropbox に変更しておいた。

あとは普通に Dropbox ディレクトリ上にファイルをコピーしたり修正したりすると、自動的にサーバ側と同期される。 最初 Nautilus というのをみたとき「Nautilus 上での処理しか反映されないのかなあ」と思ったのだが、別にそんなことはないようだ。

パーミッション・日本語ファイル名は未確認。

@ Dropbox インプレッション

ちょっとだけだが使ってみて、多くの人が絶賛する理由がなんとなく感じられた。 クールだ。 オフラインでの同期・高速な同期・リビジョン管理は便利そうである。

一方、PC 上の1ユーザで、Dropbox 複数アカウントの切り換えはちょっと面倒そう。 自前で退避させるしかないのかな。

また同期する PC によっては Subversion で特定のサブディレクトリのみチェックアウトできるように、一部のサブディレクトリのみ同期対象とできるといいなと思うのだがそういう機能はみあたらない。

完全に自分が占有している PC が複数台あって、セキュリティなどにあまり気をつかわなくてよく全部同期をかけても問題ない場合が、いちばんマッチしている利用パターンだな。


[ 9月16日全て ]

スポンサード リンク

■よく検索されるキーワード

torrent(87) perl(67) windows(47) 書き方(43) linux(40) 使い方(39) 提案書(35) アジェンダ(34) x31(27) 動画(22) debian(22) usb(22) 画像(21) アジェンダとは(21) ssh(19) java(19) 壁紙(18) porter(18) 手帳(17) thinkpad(17) インストール(15) tc-1(15) 作り方(15) svn(13) wiki(13) activeperl(12) a6(12) make(12) ノート(11) c#(11) subversion(11) 設定(11) tortoisesvn(11) xp(10) nullpointerexception(10) rcs(10) par(10) 生年月日(10) cwrsync(10) gimp(10) フィルムスキャン(10) ほぼ日手帳(10) terastation(9) ダイソー(9) 方眼(9) mp980(9) ヨドバシカメラ(9) ドラマ(9) ダウンロード(9) サンプル(9) リフィル(9) 写真(9) dropbox(9) 修理(9) ボールペン(8) バッグインバッグ(8) 秋葉原(8) cvs(8) 筆まめ(8) 無印良品(8) ubuntu(8) truecrypt(8) google(8) ganttproject(8) 会議(8) 変更(7) 中津真莉子(7) flash(7) 無印(7) 本名(7) for(7) gmail(7) 日本語(7) 提案書の書き方(7) rhodia(7) ヨドバシ(7) 2008(7) ヤマダ電機(7) openssh(7) 無料動画(7)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.111383s / load averages: 0.03, 0.25, 0.26
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)