備忘録 the next generation

2014年末にOCN(http://yamagu.mo-blog.jp)からこちらに移転しました。

VirtualBoxのVDIイメージファイルをCentOSでマウント

2016-06-29 17:17:27 | 日記

まず、fuseを利用することになるのでfuse関連のモジュールをrpmパッケージでインストールしておく。

・fuse

・fuse-libs

・fuse-devel

あたり。

 

vdfuseをダウンロードする。同名のプロジェクトがいくつか存在するが、以下のURLのもので成功を確認した。

https://github.com/SophosLabs/vdfuse

中に含まれるREADMEとINSTALLの指示に従ってビルドする。

fetch_vbox_header.sh の実行は必要だった。

次に、autogen.sh

./configure

make

の順で実行した。

make時にVBoxDDU.soが無いというエラーが出るが、
OracleからVirtualBoxのインストーラをダウンロードして
実行したら、インストーラはインストールに失敗したが、
必要なファイルは/usr/lib/virtualbox/VBoxDDU.soとしてインストールされた。

 

VDIファイルのマウントは、

vdfuse -t VDI -a -f /path/to/vdi_file /path/to/mountpoint

すると、マウントポイントにEntireDiskとPartition1という2つのイメージファイルのような
ものが出現する。 そこで以下のようにfdiskで読み込ませ、

fdisk EntireDisk

pコマンドでパーティションテーブルを表示させてやると、Parttion 1の
Startが2048ブロックであることが表示される。 

2048*512 = 1048576

なので、以下のようにoffsetを指定してマウントする。

mount -o loop,offset=1048576 -t ext4 /path/to/EntireDisk /mount_point

えがったえがった。


Jupyterをリモートサーバで運用する

2016-06-02 16:54:44 | 日記

jupyterをインストールしておく。デフォルトのインストールの状態では、ローカルホストからのみアクセスが許可されている。

http://127.0.0.1:8888/

など。

下記URLの手順に沿って設定を行う。



1.パスワードの生成

別途アクセスできるJupyter等を利用して、以下のような操作でハッシュされた
パスワードを作成する。

from notebook.auth import passwd

passwd()



2. 運用したいサーバで、以下のようなコマンドで設定ファイルを生成させる。

jupyter notebook --generate-config


通常は実行ユーザの~/.jupyter/jupyter_notebook_config.pyが生成される。

 

3. 以下のようにパスワードや、通信ポート、アクセス可能ホストの設定をする。

c.NotebookApp.ip = '*'

c.NotebookApp.password = u'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'

c.NotebookApp.port = 18888


4. jupyter notebookを起動する。


R-3.3.0のソースからのビルド

2016-06-02 15:23:47 | 日記
pcre関連でエラーが出る。8.38をインストールしているので
問題ないはずなのだが。

checking if PCRE version >= 8.10, < 10.0 and has UTF-8 support... no
checking whether PCRE support suffices... configure: error: pcre library

pcreのビルドは以下のオプションで。

./configure --enable-utf8 --enable-shared

Rのconfig.logを確認するとpcre/pcre.hが無いというエラー
が出ている。そこでpcre.hなら存在するので、それに合わせて
condigureを修正してみる。

それでエラーが出なくなるが、次にlibpcre.so.1が無いと言われている。

/etc/ld.config.d/local.confを作成して/usr/local/libを設定

ldconfig

で、Rの./configure

これで問題は解消した。
しかし、pcre/pcre.hがないというエラーはpcre.hがあれば十分なのに
いつでも出ているようで、libpcre.so.1がアクセスできないことが
原因なのにpcre/pcre.hが無いというログ(config.log)で
異常終了してしまうのは謎。