minicpanを工夫してみた
外出時にcpanモジュール入れるのにminicpanを使っていますが、いちいちminicpanを起動して、オプション指定して、使い終わったら落とすという流れがめんどくさかったので、一連の流れをコマンドにしてみた。
(minicpan用のhttpdを常時起動しておいて、PERL_CPANM_OPTを指定しておけばいいだけですけど)
minicpanの保存先を予め決めておいて
minicpan -l ~/perl5/minicpan -r http://mirror/
こんな感じでcpanm_minicpanとして作成した。
#!/usr/bin/env perl use strict; use warnings; use Plack::Builder; use Plack::Middleware::Static; use Plack::Runner; use Test::TCP; my $server = Test::TCP->new ( code => sub { my $port = shift; my $app = builder { enable "Plack::Middleware::Static", path => qr{^/}, root => $ENV{HOME} . '/perl5/minicpan'; }; my @args = ("--port=$port"); unless ( $ENV{DEBUG} ) { push @args, '--access-log=/dev/null'; open STDERR, '>', '/dev/null' or die $!; open STDOUT, '>', '/dev/null' or die $!; } my $runner = Plack::Runner->new; $runner->parse_options(@args); $runner->run($app); }, ); printf STDERR "Start minicpan server: 0.0.0.0:%s (pid: %d)\n\n", $server->port, $server->pid; my $port = $server->port; system 'cpanm', '--mirror-only', "--mirror=http://localhost:$port/", @ARGV; printf STDERR "\nStopping minicpan server: 0.0.0.0:%s (pid: %d)", $server->port, $server->pid; undef $server;
zsh functionの_cpanmの補完対象に追加しておけば、補完も効く。
cobblerのdebian用パッケージのコンパイル
https://fedorahosted.org/cobbler/wiki/DownloadInstructions
ここに書いてある通りなんだけど、認証プロキシの下だったので、pdebuildのときにパッケージが取ってこれなくて若干工夫が必要だった。
解決方法としては、apt-cacherを入れて、プロキシの認証はapt-cacherにお任せした。
apt-cacherの環境づくり
sudo aptitude install apt-cacher sudo vim /etc/apt-cacher/apt-cacher.conf http_proxy=proxy_host:proxy_port use_proxy=1 http_proxy_auth=id:password use_proxy_auth=1 sudo vim /etc/default/apt-cacher AUTOSTART=1 sudo /etc/init.d/apt-cacher start
0.0.0.0:3142 でapt-cacherが動きます。
pbuilderの環境づくり
sudo aptitude install pbuilder sudo vim /etc/pbuilderrc MIRRORSITE=http://host_ip:3142/ftp.jp.debian.org/debian/ sudo pbuilder --create --distribution wheezy --http-proxy http://proxy_host:proxy_port/
TimeMachine の続き
前回書いた記事 だけだとtimemachineからの復元ができなかったの続き
復元が動かないのは、timemachineで作成したバックアップのパーミッションが711になっていたせいの模様。
こちらを参考に修正した。
http://rewse.jp/blog/p/3569
これでタイムマシーンからの復元が動くようになった。
ただ、macには詳しくないので副作用がないかどうかは不明。。。
設定は自己責任で。
TimeMachine
Macのバックアップは普通にsambaたてているだけではダメということで作業したメモ
NAS: Ubuntu 10.04
Mac: Macbook Air Darwin 11.0.1
- 作業用のディレクトリを作成
- 作業用のディレクトリにソースを落としてくる
- ubuntuのnetatalkのページ
- ソースを展開
dpkg-source -x netatalk_2.2~beta4-1.dsc
- 必要なパッケージを入れる
- dpkgのコンパイル環境
sudo apt-get install dpkg-dev fakeroot
sudo apt-get install \
cdbs \
autotools-dev \
devscripts \
debhelper \
dh-buildinfo \
libdb-dev \
libwrap0-dev \
libpam0g-dev \
libcups2-dev \
libkrb5-dev \
libltdl3-dev \
libgcrypt11-dev \
libcrack2-dev \
libavahi-client-dev \
d-shlibs \
hardening-includes
sudo apt-get install libldap2-dev libacl1-dev
dpkg-buildpackage -us -uc -rfakeroot -d
- パッケージができるのでdpkg -i で入れる
- netatalkの設定
:DEFAULT: options:upriv,usedots cnidscheme:dbd dperm:0700 fperm:0600 ea:sys /path/to/TimeMachine "Time Machine" options:tm
ATALK_UNIX_CHARSET='UTF8' ATALK_MAC_CHARSET='MAC_JAPANESE'
xenのゲストOSをxenserverに変換する方法
コマンド一発だった。
LVMのLVをddしてゴチャゴチャやっていたのは一体なんだったのか。
気をつける点としては、2点
・準仮想化の場合はデバイスが、sdaとかからxvdaとかになるので、fstabやgrubを変更する必要がある点。xenserverに入れてからrescueで書き換えるだけですけど。
・grubのkernelオプションだけでなく、xenserver側の起動オプションも確認する点。コンソール取れなくてびっくりした。
でやり方
xva.pyを使う
ここら辺参照。READMEの言う通りにやれば上手くいった。
http://blog.xen.org/index.php/2010/04/22/xcp-migration-utility-xva-version-1-2-available/
http://www.xen.org/files/xva/README
http://www.xen.org/files/xva/xva.py
perlbrewのproxy対応
perlbrew (http://search.cpan.org/~gugod/App-perlbrew/)を教えてもらって便利そうなので使ってみたけど、proxy対応していなかったので、環境変数から呼ぶようにしてみました。
これで環境変数にhttp_proxyがあればproxy使ってくれます。
もう少し真面目に書いてCPANにパッチ送ろうかな。。。
注意点としては、HTTP::Liteのproxyメソッドが、http://host:port/ のフォーマットを前提にしているので、最後にスラッシュがないとうまく動きません。(昔yumもそんなんだったな。。。)
$ diff -ub perlbrew.orig perlbrew
--- perlbrew.orig 2010-05-31 18:36:45.630114803 +0900 +++ perlbrew 2010-05-31 18:40:10.086114474 +0900 @@ -922,6 +922,7 @@ my $http_get = sub { my ($url, $cb) = @_; my $ua = HTTP::Lite->new; + $ua->proxy if exists $ENV{http_proxy}; my $loc = $url; my $status = $ua->request($loc) or die "Fail to get $loc";