Hatena::ブログ(Diary)

かーねる・う゛いえむにっき このページをアンテナに追加 RSSフィード Twitter

2014-06-30

[][]Baytrail-M NUC(DN2820FYKH)でFreeBSDが起動しなかった話・その後

僕のIntel nucか?起動しないわけか?ない

の続きの話です。

CURRENTにマージされたbug fixMFCって言って、stableへマージされて次のRELEASEに含まれる仕組みになってるっぽいんですが、このパッチも無事取り込まれたようで、次のRELEASE(10.1, 9.3かな?)に入るようです。

[base] Revision 267809

[base] Revision 267821

これでFreeBSD起動しねぇ!って騒がなくてすむね!

2014-05-20

[][][]Macでもmruby-simplehttpserverをcapstanを使ってお手軽簡単にOSv向けにビルド&実行

前回の記事ではLinuxに絞ってcapstanを使ったmruby on OSvのビルド&実行方法を紹介しましたが、アプリケーションコンパイルが他プラットフォームでは出来ないと説明しました。

代わりに、github上にビルド済みのアプリケーションバイナリを置いて、OS Xでcapstanを使ってOSvのイメージを作成&実行することに成功したので、これを紹介します。

brew必要になるアプリインストール

brew install go qemu git

環境変数を設定

echo 'export GOPATH=$HOME/go'    >>  $HOME/.profile
echo 'export PATH=$PATH:$GOPATH/bin'  >> $HOME/.profile
source  $HOME/.profile

VirtualBoxインストール

Downloads ? Oracle VM VirtualBox

capstanをインストール

go get github.com/cloudius-systems/capstan

mruby-simplehttpserver用のcapstanリポジトリをチェックアウト

git clone -b prebuilt https://github.com/syuu1228/capstan-mruby-simplehttpserver.git

リポジトリビルド

QEMUウインドウ一時的に表示されることがあるようですが、特に触らなくて問題ありません。

cd capstan-mruby-simplehttpserver
capstan build

VMの実行(VM上のポート番号80をホスト上のポート番号10080へ転送

ハイパーバイザを指定しない場合VirtualBoxが用いられますが、正常に動作するようです。

capstan run -f 10080:80

http serverへのアクセステスト

curl http://127.0.0.1:10080/html -v

* About to connect() to 127.0.0.1 port 10080 (#0)
*   Trying 127.0.0.1...
* Adding handle: conn: 0xd0d8f0
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0xd0d8f0) send_pipe: 1, recv_pipe: 0
* Connected to 127.0.0.1 (127.0.0.1) port 10080 (#0)
> GET /html HTTP/1.1
> User-Agent: curl/7.32.0
> Host: 127.0.0.1:10080
> Accept: */*
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Server: my-mruby-simplehttpserver
< Date: Mon, 19 May 2014 17:57:13 GMT
< Content-Type: text/html; charset=utf-8
< Content-Length: 28
< 
<H1>Hello mruby World.</H1>
* Closing connection 0

2014-05-19

[][]matsumotory氏のmruby-simplehttpserverをcapstanを使ってお手軽簡単にOSv向けにビルド&実行する

OSvは最近capstanというビルドデプロイツールが出来たので、以前のようにOSビルドしなくてもアプリだけビルドしてVMイメージ作成&実行が簡単にできます。

ここでは、@matsumotory氏がブログで解説されていたmruby-simplehttpserver用のcapstanリポジトリを作成してみたので、インストール&実行方法を紹介します。

バイナリディストリビューションインストール&実行はWindows・Mac・Linuxに対応していますが、今のところソースコードからアプリビルドするにはLinux必要公式対応ディストリFedora 20)なので、以下の手順はFedora 20を使って説明します。

なお、この記事ではcapstan用リポジトリの作り方について詳しい解説をしていませんが、こちらにビルド設定定義ファイル「Capstanfile」のドキュメントがあるので、興味があれば読んでみて下さい。

GoQEMUgitインストール

wget http://go.googlecode.com/files/go1.2.1.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.2.1.linux-amd64.tar.gz
sudo yum install qemu-system-x86 git

.bashrcに環境変数を追加

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

capstanをインストール

go get github.com/cloudius-systems/capstan

mruby-simplehttpserver用のcapstanリポジトリをチェックアウト

git clone https://github.com/syuu1228/capstan-mruby-simplehttpserver.git

リポジトリビルド

cd capstan-mruby-simplehttpserver
capstan build

VMの実行(VM上のポート番号80をホスト上のポート番号10080へ転送

capstan run -f 10080:80

http serverへのアクセステスト

curl http://127.0.0.1:10080/html -v

* About to connect() to 127.0.0.1 port 10080 (#0)
*   Trying 127.0.0.1...
* Adding handle: conn: 0xd0d8f0
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0xd0d8f0) send_pipe: 1, recv_pipe: 0
* Connected to 127.0.0.1 (127.0.0.1) port 10080 (#0)
> GET /html HTTP/1.1
> User-Agent: curl/7.32.0
> Host: 127.0.0.1:10080
> Accept: */*
> 
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Server: my-mruby-simplehttpserver
< Date: Mon, 19 May 2014 17:57:13 GMT
< Content-Type: text/html; charset=utf-8
< Content-Length: 28
< 
<H1>Hello mruby World.</H1>
* Closing connection 0

2014-04-28

[][]Linux上のmikutterリンククリックしたら別のLinux上のブラウザで表示する方法

Linux上のmikutterでリンクをクリックしたらMac上のブラウザで表示する方法 - かーねる・う゛いえむにっきの続きですが、「いや、おれMacとか使ってねぇし?不自由OSユーザー氏ね」みたいな声が聞こえてくる気がする*1ので、Linuxでも出来るかどうか考えてみました。

で、なんか10秒くらい考えた結果、出来そうなのでここに書いておきます。

基本的な設定は前回の記事と全く同じなのでそちらを参照して下さい。

シェルスクリプトだけ違うものを使います。

cat > open <<EOS
#!/bin/sh
ssh teokure.local env DISPLAY=:0.0 xdg-open $*
EOS
chmod +rx open

あんまりしっかり試してないけど多分これで大丈夫

*1:完全な被害妄想

2014-04-25

[][][]Linux上のmikutterリンククリックしたらMac上のブラウザで表示する方法

VM上のLinuxmikutterを動かしてたり、synergyで2台のPCを並べて使ってたりする場合に、TwitterだけLinuxmikutterで眺めてWebMacで見たい場合ってありませんか。僕はあります。

そんな時、SSHを使えば割と簡単に実現出来ます。

MacSSHサーバ有効

システム環境設定→共有でリモートログインにチェック。

Linuxにmulticast DNSを設定

FedoraUbuntuのようなお手軽ディストリなら設定済みです。

GentooやArchやDebianの人はこのへんを見て設定して下さい。

ここでmulticast DNSを敢えて使用するのは、DHCPMacIPアドレスが変更されたり、VMネットワーク設定が変わってホスト側のMacIPアドレスが変わって見えたりしたときにもIPアドレス自動的に解決する方法として適しているからです。

必要なければIP直打ちでも以下の設定をおこなう事が出来ます。

SSH公開鍵認証を設定

Linux側でパスフレーズの無いSSH鍵を作成し、Mac側の~/.ssh/authorized_keysに追加しておいてパスワードパスフレーズ無しでMacログインできるようにしておきます。

Macホスト名は各自チェックして下さい。

ssh-keygen -t dsa
scp ~/.ssh/id_dsa.pub syuu-no-MacBook-Pro.local:~/
mkdir .ssh
cat id_dsa.pub >> .ssh/authorized_keys
シェルスクリプトを作る

Linux側で以下のようなシェルスクリプトを作ります。

cat > open <<EOS
#!/bin/sh
ssh syuu-no-MacBook-Pro.local open $*
EOS
chmod +rx open

試しに叩いてブラウザが上がってくるかみてみます

~/open http://www.google.com
mikutterに設定する

設定→表示→URLを開く方法で次のコマンドを使うを選び、

/home/syuu/open

などと書き込んでおけば、次からブラウザではなくて上述のシェルスクリプトが実行されて何故かMacブラウザが立ち上がるようになります(ホームディレクトリパスは各自チェックして下さい)。

応用

mikutterではなくデスクトップ環境デフォルトブラウザopenを指定すれば別のアプリリンクを踏んでもMacブラウザが立ち上がります。

また、ファイルをscpしてからopenMacで実行する所までをシェルスクリプト化すれば、コマンドラインで指定したファイルMacで開くことが出来ます(Macopenコマンド自体URLを開くためのコマンドではなく、URLファイル引数に与えてデフォルト設定のアプリケーションで開くためのコマンドです。詳しくはmanを見てね)。

おやくそく

SSHサーバを起動したりパスフレーズなし鍵認証を設定したりとセキュリティが緩くなる方向に設定を変更してるので、ファイヤウォールで必要ないIPは弾くとかSSHの設定を厳しくするなどして穴を広げない方向でお使い下さい。