ラベル mikutter の投稿を表示しています。 すべての投稿を表示
ラベル mikutter の投稿を表示しています。 すべての投稿を表示

2013年12月15日日曜日

mikutter LiveDVD(NEGIX) 13.12のリリースと今後について

(ディストリビューション/パッケージマネージャー Advent Calendar 2013の記事を兼ねての投稿です.)

mikutter LiveDVD 13.12(NEGIX)リリース

ダウンロードしてDVDやUSBメモリに書き込んだらmikutter環境がすぐ使えるmikutter LiveDVD(NEGIX). その新バージョンとなる13.12をリリースしました.

http://yuzuki.hachune.net/negix/
http://repo.hachune.net/Linux/ArchLinux/iso/2013.12.15/

Arch LinuxのLiveCDと同様に毎月更新ということを銘打っていたのですが,今回はいろいろあって10月のOSC東京(秋)以来のリリースとなってしまいました.もうしわけねぇもうしわけねぇ.

mikutter LiveDVDの目標

mikutter LiveDVDの目標としては,以下の点があります.

  • Live環境を起動したら日本語環境でmikutterがすぐ使える状態にする
  • 毎月リリースする
    • Arch LinuxのLiveCDをベースに,可能な限り弄らない
    • Arch Linuxのパッケージをそのまま使う

何故かインストールが難しいと評判のmikutterを簡単に使えるようにすることを第一の目標としています. また,Arch Linuxらしさ(更新の早さ,パッケージの新しさ,簡素さ)も十分に発揮できるよう, 可能な限り毎月リリースすることも目標としています.そこで,最小限の手間でLiveDVDを作れるよう, 基本環境やパッケージには可能な限り手を入れないよう心がけています.

mikutter LiveDVDの今後

debianやubuntuの標準リポジトリにmikutterが入り導入難易度がぐーんと下がったということもあり, 若干存在意義が危ぶまれている感じもしますが, 「最新揃いのArch Linux環境でmikutterが簡単にすぐ使える」という売りもあるので, まだまだ需要は...ある?

Raspberry PiやBeagle Bone Blackとかでパッと使えるmikutter環境イメージがほしい, という意見もあったりするようで,いろいろ作ってみたいところですが,手が足りていない感じです. (今はOpenVPNとかをRPiで簡単に使えるようにする環境のようなモノを作っていたりもするので,それができたら...)

画像はイメージです

2013年3月21日木曜日

OpenBlocks AX3上のLXC内のArch Linuxにmikutter環境を構築

前回作成したOpenBlocks AX3上のLXC内のArch Linux環境にmikutterをインストールし動かしてみる。

Arch Linuxでのmikutterは、Arch User Repository(AUR)にPKGBUILDが存在するため、 環境構築が他ディストリに比べ容易である。 AURのPKGBUILDを利用する場合は、pacmanのフロントエンドyaourtが便利であ るので、それをインストールする。また、一般ユーザでPKGBUILDを元にパッケー ジを作成する場合は、fakerootコマンドが必要であるので、それも合わせてイ ンストールする。
miku@arch% sudo pacman -S yaourt fakeroot
mikutterはアーキテクチャ非依存であるハズなので、サポートアーキテクチャに i686とx86_64と指定されている部分をanyに変更する。
miku@arch% yaourt -S mikutter
PKGBUILDの
arch=('i686' 'x86_64')
を
arch=('any')
に修正しビルド、インストールする。
OpenBlocksには直接ディスプレイを接続することができないため、SSHのX forwarding経由にてmikutterを実行する。 /etc/ssh/sshd_configのX11Forwardingの項を有効にする。
X11Forwarding yes
設定を反映させるため、sshdを再起動する。
miku@arch% sudo systemctl restart sshd.service
また、LXCはIP Masqueradeの内側となるため、SSH Proxyを利用する。 OpenBlocksのIPアドレスは10.39.39.39/24、その中のコンテナのIPアドレスは 10.3.93.11/24であるので、手元の環境の~/.ssh/configに以下のように追記し ておく。
Host obs
HostName 10.39.39.39

Host obs.arch
HostName 10.3.93.11
ProxyCommand ssh -W %h:%p obs
これにより、"ssh obs.arch"だけでobsのsshdを経由しobs.archに接続可能に なる。
miku@hachune% ssh -X obs.arch
X11 forwarding request failed on channel 0
Last login: Wed Mar 20 16:41:43 2013 from 10.3.93.1
どうやら、X11 forwardingに失敗しているようだ。xauthが存在していないの が原因のようなので、xorg-xauthパッケージをインストールする。
miku@arch% yaourt -S xorg-xauth
miku@arch% sudo systemctl restart sshd.service
ようやくX forwardingができたものの、フォントがないため非常に残念なこと になる。
miku@hachune% ssh -X obs.arch
Last login: Wed Mar 20 17:06:50 2013 from 10.3.93.1
miku@arch% mikutter

VL Gothicフォントを入れてやり直し。
miku@arch% yaourt -S ttf-vlgothic
今度は無事mikutterが起動し利用できる状態になった。RUBY_PLATFORMがarmv7l-linux-eabiとなっていることが確認できる。

SSH Proxy経由のX forwardingであるため、かなり残念な表示速度と操作性と なってしまっている。ただ、CPU負荷は500アカウント程度フォローしているホー ムタイムラインのUserStream有効の状態で5%〜30%程度に落ち着いているため、 CPUの性能不足という事は無いようだ。また、Disk I/Oも余裕があるように見 受けられる。
やはりOpenBlocks上でmikutterを利用する場合は、mikutterのデーモンモード を利用するのが無難かと思う。

2012年10月9日火曜日

お名前.comのVPS(メモリ4GBプラン)にFreeBSD(virtio)を導入

お名前.comのVPS(メモリ4GBプラン)をmikutterユーザ会として1年間無償で借りることができたので、 早速いろいろ試してみた。

今回はVPS上で「コミュニティーでいろいろ共用できるサーバ」にするので、コンテナ型の仮想化が一番 よさそうと考え、とりあえずFreeBSDを導入することにした。ただ、 FreeBSD9.1-RC1の時点ではまだvirtioが利用できないため、 virtioがbaseのGENERICに入った9-STABLEをビルドし導入する。

今回テストしたバージョンは以下の通り。
FreeBSD 9.1-PRERELEASE #0 r241139: Wed Oct 3 04:26:52 JST 2012

CentOS 6.2(linux-2.6.32, virtio)
dd if=/dev/zero of=test.img bs=1M count=1000
1048576000 bytes (1.0 GB) copied, 3.63471 s, 288 MB/s 
FreeBSD 9-stable(not virtio)
% dd if=/dev/zero of=test.img bs=1M count=1000
1048576000 bytes transferred in 7.655223 secs (136975241 bytes/sec)
FreeBSD 9-stable(virtio)
% dd if=/dev/zero of=test.img bs=1M count=1000
1048576000 bytes transferred in 3.158812 secs (331952641 bytes/sec)

ホストは共用なので細かい速度はあてにならないかもしれないが、 virtioを有効にしたFreeBSDはそれなりに速度が出ている模様。やはりvirtio無しは遅い。 CentOSは何度か試したところ、試したタイミングが悪かった可能性があるのでなんとも言えないものの、 速度にFreeBSDより大きなばらつきがあった。

試しに安鯖で有名なML110G7でも同様の処理をしてみた。

FreeBSD 9-stable(ML110G7)
% dd if=/dev/zero of=test.img bs=1M count=1000
 1048576000 bytes transferred in 11.833178 secs (88613221 bytes/sec)

VPSのほうがDisk I/Oは圧倒的に速いようだ。かなしい。

dmesgは以下の通り。

Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 9.1-PRERELEASE #0 r241139: Wed Oct  3 04:26:52 JST 2012
    root@vps.m.hachune.net:/usr/obj/usr/src/sys/GENERIC amd64
CPU: Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz (2533.48-MHz K8-class CPU)
  Origin = "GenuineIntel"  Id = 0x6fb  Family = 0x6  Model = 0xf  Stepping = 11
  Features=0xf8bf3ff
  Features2=0x80002201
  AMD Features=0x20100800
  AMD Features2=0x1
  TSC: P-state invariant
real memory  = 4294967296 (4096 MB)
avail memory = 4101722112 (3911 MB)
Event timer "LAPIC" quality 400
ACPI APIC Table: 
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
FreeBSD/SMP: 4 package(s) x 1 core(s)
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
 cpu2 (AP): APIC ID:  2
 cpu3 (AP): APIC ID:  3
ioapic0: Changing APIC ID to 4
ioapic0  irqs 0-23 on motherboard
kbd1 at kbdmux0
acpi0:  on motherboard
acpi0: Power Button (fixed)
cpu0:  on acpi0
cpu1:  on acpi0
cpu2:  on acpi0
cpu3:  on acpi0
atrtc0:  port 0x70-0x71,0x72-0x77 irq 8 on acpi0
Event timer "RTC" frequency 32768 Hz quality 0
hpet0:  iomem 0xfed00000-0xfed003ff on acpi0                                     [46/403]
Timecounter "HPET" frequency 100000000 Hz quality 950
Timecounter "ACPI-safe" frequency 3579545 Hz quality 850
acpi_timer0: <24-bit timer at 3.579545MHz> port 0xb008-0xb00b on acpi0
pcib0:  port 0xcf8-0xcff on acpi0
pci0:  on pcib0
pci_link4: Unable to route IRQs: AE_NOT_FOUND
isab0:  at device 1.0 on pci0
isa0:  on isab0
atapci0:  port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xc000-0xc00f at device 1.1 on pci0
ata0:  at channel 0 on atapci0
ata1:  at channel 1 on atapci0
uhci0:  port 0xc020-0xc03f irq 11 at device 1.2 on pci0
usbus0: controller did not stop
usbus0 on uhci0
pci0:  at device 1.3 (no driver attached)
vgapci0:  mem 0xf0000000-0xf1ffffff,0xf2000000-0xf2000fff at device 2.0 on pci0
virtio_pci0:  port 0xc040-0xc05f mem 0xf2020000-0xf2020fff irq 11 at device 3.0 on pci0
vtnet0:  on virtio_pci0
virtio_pci0: host features: 0x711fffe3 
virtio_pci0: negotiated features: 0x110fbba3 
vtnet0: Ethernet address: 02:16:3e:68:9f:e5
virtio_pci1:  port 0xc080-0xc0bf mem 0xf2040000-0xf2040fff irq 11 at device 4.0 on pci0
vtblk0:  on virtio_pci1
virtio_pci1: host features: 0x710006d4 
virtio_pci1: negotiated features: 0x10000254 
vtblk0: 81920MB (167772160 512 byte sectors)
virtio_pci2:  port 0xc0c0-0xc0ff mem 0xf2041000-0xf2041fff irq 10 at device 5.0 on pci0
vtblk1:  on virtio_pci2
virtio_pci2: host features: 0x710006d4 
virtio_pci2: negotiated features: 0x10000254 
vtblk1: 327680MB (671088640 512 byte sectors)
virtio_pci3:  port 0xc100-0xc11f irq 10 at device 6.0 on pci0
vtballoon0:  on virtio_pci3
virtio_pci3: host features: 0x71000002 
virtio_pci3: negotiated features: 0x0                                                                         [7/403]
atkbdc0:  port 0x60,0x64 irq 1 on acpi0
atkbd0:  irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0:  irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model IntelliMouse Explorer, device ID 4
fdc0:  port 0x3f2-0x3f5,0x3f7 irq 6 drq 2 on acpi0
fdc0: does not respond
device_attach: fdc0 attach returned 6
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
uart0: console (9600,n,8,1)
orm0:  at iomem 0xc9000-0xc97ff on isa0
sc0:  at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x100>
vga0:  at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
attimer0:  at port 0x40 on isa0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
fdc0: No FDOUT register!
ppc0: cannot reserve I/O port range
ctl: CAM Target Layer loaded
Timecounters tick every 1.000 msec
usbus0: 12Mbps Full Speed USB v1.0
ugen0.1:  at usbus0
uhub0:  on usbus0
GEOM: vtbd1: corrupt or invalid GPT detected.
GEOM: vtbd1: GPT rejected -- may not be recoverable.
uhub0: 2 ports with 2 removable, self powered
ugen0.2:  at usbus0
uhid0:  on usbus0
cd0 at ata0 bus 0 scbus0 target 0 lun 0
cd0:  Removable CD-ROM SCSI-0 device 
cd0: 16.700MB/s transfers (WDMA2, ATAPI 12bytes, PIO 65534bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present
SMP: AP CPU #1 Launched!
SMP: AP CPU #3 Launched!
SMP: AP CPU #2 Launched!
Timecounter "TSC-low" frequency 9896395 Hz quality 1000
Trying to mount root from ufs:/dev/vtbd0p3 [rw]...

試しにメモリ1GBプラン(60日体験版)も試してみたところ、CentOS6.2(linux-2.6.32, virtio有効)で だいたい100〜130MB/sだった。どうやら容量だけでなく速度の面でも4GBプランはメリットがある模様。

余談

いつものようにファイアウォールはpfでいこうとしたところ、pfctl -eした瞬間 何故かダウンロードのみ激遅(10KB/sぐらい)になったりと散々だったので、ipfwを覚えることに。 VIMAGEもいろいろと不具合があってハマりまくったので今回は見送り。

2012年9月15日土曜日

OSC 2012 Tokyo/Fallにmikutterユーザ会として出展しました

9月7,8日に開催されたオープンソースカンファレンス2012 Tokyo/Fallに mikutterユーザ会として出展しました。
http://www.ospn.jp/osc2012-fall/

去年のOSC仙台以来2回目の参加でいきなりブース出展、しかも一番規模が大 きな東京会場ということでかなり不安もありましたが、お隣の日本NetBSDユー ザグループさんやmikutterのユーザさん達等からいろいろと支援して頂いたり しつつ、mikutterの薄い本vol.2の印刷が間に合わないトラブル等もありましたが、 なんとか無事に終えることが出来ました。ありがとうございました。

mikutterブースの様子。mikutter開発者の @toshi_aさんは、残念ながら お仕事の都合で来れないということで、モックアップとしての参加に。隣に ちびづるん(モックアップ)なるものも参加していたり。 (あっ、マミさ…あれ? 違う… という参加者のつぶやきが聞こえてきたりも)

いろいろなキャラクターが同居しているのもオープンソース界隈ではよくあること(?)
(ちなみに、mikutterグッズはほぼ全てお隣のNetBSDユーザーグループさんからの提供です。)

いろいろと頂いたもの。「mikutterブース」として用意していったものは LiveUSBメモリイメージとmikutterのうすい本 vol.2のサンプル程度だったのですが、 いろいろなブースを巡っていたらいつの間にかバッグがノベルティだらけに。 特にデカかったのはOpenSolarisの本。1000ページ近くあり、持って帰るのが大変な位でした。 (オライリー本は一日目に買っておいて良かった...)

流石に何も作らず持って行かないのはマズいと急遽作成したmikutter LiveUSBメモリイメージ。 配布条件が「4GB以上の全削除可能なUSBメモリを持っている事」 という割と狭い感じでしたが、それでも10人近くの方がUSBメモリを持参してきてくれました。 (中にはわざわざ新品を買ってきたという方も。もうしわけねぇヽ('ω')ノ三ヽ('ω')ノ)

そしてこのカンファレンス中に「mikutterがDebianのパッケージになる…かもしれない」という話が 浮上。Debianのパッケージになると、その派生ディストリビューションにもパッケージとして入ること もあるため、これはwktkしつつ待ちたいところ。
(mikutterのDebianパッケージの問題として、mikutter本体とskinデータのライセンスの違いが一番大きい。 mikutter本体はGPLv3であるものの、skinデータは初音ミクの歌声データ等が含まれる為GPL互換にはできず、 DFSGに適合できない。その点について解決するために、初音ミクに関連するskinを含まないmikutterを 準備する必要がある…という感じ。)

その他にも、お名前.comさんからmikutterユーザ会として VPS(KVM) 4GBプラン 1年分を頂いたりもしました。 今後これを皆で使えるように整備するのが当面の仕事になりそう。

これからもmikutterをよろしくお願いしますヾ(@⌒ー⌒@)ノ

2011年12月24日土曜日

Solaris 11でmikutter用ruby環境を構築する

pkgsrcがうまくいかずぐぬぬしていたので、気をとり直してmikutterを動かしてみることにした。 ただ、ホストがXServerを動かせるような環境では無いので、sshでXをforwardして起動する。 また、リポジトリにはruby1.8.7しか無いため、ruby1.9.3はソースからビルドする。

pkg install gcc
pkg install system/header
pkg install library/desktop/gtk2
pkg install x11/session/xauth
pkg install system/font/truetype/ipafont
wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.9.3-p0.tar.gz
tar xzf ruby-1.9.3-p0 && cd ruby-1.9.3-p0
./configure --prefix=/usr/ruby && make && make install
/usr/ruby/bin/gem install gtk2

だいたいこんな感じでmikutterを実行できるruby環境が出来上がる。 あとはいつも通りmikutterをcheckoutして実行すればよい。

Solaris 10(SPARC)の時はやたら苦労したのに、 今回はすんなり通ってしまいあっさり終わってしまった。

2011年4月21日木曜日

debianやubuntuでmikutterビルド環境を作る

あまりに何度もmikutterビルド環境を構築しているので、そろそろ纏めてみる。

ベースシステムを構築

/var/rootにビルド用のubuntu nattyをdebootstrapにて用意する。 この中で全ての作業を行うことになるので、バグがあったり操作ミスしたりしてもシステム全体に被害は及びにくくなる。また、それぞれ違うディストリビューションやバージョンを用いることもできる(debian sidやubuntu lucidなど)。
ホストがamd64な環境ならば、debootstrapにオプション--arch i386を追加することで、i386な環境を構築することも可能。
# aptitude install debootstrap
# mkdir /var/root
# cd /var/root
# debootstrap natty ./natty

基本システムをmikutterビルド用にセットアップ

新たに作ったubuntu nattyの中にchrootする。 chroot後は、必要なファイルやパッケージを、通常のシステム同様にapt等を用いて準備する。
# chroot /var/root/natty /bin/bash
# apt-get update
# apt-get install \
gcc make  pkg-config subversion libnotify-bin wget \
libgtk2.0-dev libsqlite3-dev libssl-dev zlib1g-dev
もしsysやprocが見つけられないことが原因でエラーになるようであれば、 chrootから一度抜けだしてマウントしておく。
必要以上にマウントすると、なんらかのミスでとんでもないことになる可能性もあるので注意。
# mount -t proc proc ./natty/proc
# mount -o bind /dev ./natty/dev
# mount -t devpts devpts ./natty/dev/pts
# mount -t sysfs sysfs ./natty/sys

Rubyをビルド

そしてchroot内でruby1.9.2をビルドし、必要なrubyパッケージをgemで追加する。
# cd /usr/src
# wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.9.2-p180.tar.gz
# tar xzf ruby-1.9.2-p180.tar.gz
# cd ruby-1.9.2-p180
# ./configure --prefix=/usr/ruby192 --program-suffix=192
# make && make install
# /usr/ruby192/bin/gem192 install ruby-hmac gtk2 sqlite3

mikutterをcheckout

最後にmikutterをcheckoutすれば、mikutterビルド環境のできあがり。
# cd /usr/src
# svn co svn://mikutter.hachune.net/mikutter/trunk/ mikutter
あとはsshのX転送やvnc等などを利用して、mikutterが動くかどうか試す。
おそらく日本語がまともに表示されずガッカリすることになるので、
# apt-get install ttf-vlgothic
などとしておくとよいかもしれない。