2015年11月30日

CentOS 6.7でVagrantのboxを作成しようとしたが

個人的にスクラッチで作成したCentOS 6.6のboxを使っていますが、そろそろCentOS 6.7に切り替えようと思い、この土曜日にCentOS 6.7 minimalからbox作成を試みました。

参考
スクラッチでVagrantのbox作成

しかし、1時間もかからないかと思っていた予想が全く外れて、あるトラブルが原因で何時間もかかってしまいました。。。

その箇所は、VBoxLinuxAdditions.run(VirtualBox Guest Additions) の実行で、OpenGLの項目が失敗するところです。
# sh VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.3.12 Guest Additions for Linux............
VirtualBox Guest Additions installer
Removing installed version 4.3.12 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox DKMS kernel modules [ OK ]
Removing existing VirtualBox non-DKMS kernel modules [ OK ]
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module [ OK ]
Building the shared folder support module [ OK ]
Building the OpenGL support module [FAILED]
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions [ OK ]
Installing the Window System drivers
Could not find the X.Org or XFree86 Window System, skipping.


ネットで調べると、以下のようなのが見つかります。1つ目はgmake にiオプションでエラーを無視するようにする方法です。しかし、これはエラーを放置するので、2つ目のシンボリックリンク作成を実行してみましたが、別のエラー(一部ヘッダーファイルが見つからない)が発生しました。
1.CentOS 6 OpenGL guest additions failed to install
2.CentOS 6.5 - Building OpenGL support module ... failed

そのため、さらに調べて、以下を実行してヘッダーファイルが見つからないエラーは解消するようになりました。
# cd /usr/include/uapi
# ln -s ../drm


ただし、今度は、drm_mmapの宣言がないという以下のエラーが発生する(ログに記録される)ようになりました。
/tmp/vbox.0/vboxvideo_drm.c:122: error: 'drm_mmap' undeclared here (not in a function)


最終的には、以下のコメント欄の2015年8月以降を見つけました。
VirtualBox Guest Additions on Fedora 22/21, CentOS/RHEL 7.1/6.7/5.11

ここに書かれていることと、自分の環境でいろいろとやったことが一致していたので、結論して、2015年11月28日現在、CentOS 6.7 でのVBoxLinuxAdditions.run実行は、以下の方法でないとOpenGLのエラーを解消できないようです。(VirtualBoxはWindows7で動作)

・CentOS 6.7の場合、kernelを古いバージョン (2.6.32-504)に変更してからVBoxGuestAddionsを実行
・CentOS 6.6でVBoxLinuxAdditions.runを実行後に6.7にアップグレード

まとめ?
・CentOS 6.7 のカーネル 2.6.32-573.el6.x86_64 だと、VBoxLinuxAdditions.run のOpenGLのエラーが解消できない。
・CentOS 6.6 のカーネル 2.6.32-504.el6.x86_64 では、VBoxLinuxAdditions.run で、OpenGLのエラーが発生しない。

試したVirtualBoxのバージョンは以下になります。これらでは、CentOS 6.7 カーネル 2.6.32-573.el6.x86_64 で VBoxLinuxAdditions.run を実行すると、OpenGLの項目でエラーが発生しました。
・4.3.12
・4.3.34
・5.0.10
※ OSはWindows7

posted by jun1 at 00:29| Comment(0) | TrackBack(0) | OS、仮想環境

2015年11月16日

2015年12月1日にルートサーバのIPアドレス変更

新しい汎用トップレベルドメイン(gTLD)に.PLAYSTATION、.APPLEなどが追加されたという記事がありました。
.PLAYSTATIONなど、20の新gTLD登場

記事を見てみると、ICANNの2013年以降に追加された汎用トップレベルドメイン一覧へのリンクがあったので、そちらも見てみました。すると、.GMO、.SONYや.SUZUKIなど日本企業も結構登録していました。
また、.TOKYOや.OSAKAなどの日本の都市名や、.GAME、.TODAY、.AAA、.LEXUSなど、いろいろなものが登録されていて、なんでもありのようです。
Delegated Strings - ICANN New gTLDs

あと、上記を見ている途中で、そういえばルートサーバーのIPアドレス変更がそろそろあったなあと思い出しました。そこで、調べてみると、2015年12月1日にH-Rootが変更でした。
ルートサーバのIPアドレス変更(JPNIC BLOG)

最近はヒントファイルを直接利用しない priming(プライミング)という仕組みもあるそうです。
第5回 IPアドレスが変わっても名前解決できる技術

2015年11月08日

Vagrantのbox作成

ここ数年VirtualBox + Vagrantを使っています。
個人的に使用する場合は、公開されているboxを使っていましたが、boxの中身理解や開発環境のテストのため、boxを自作できるようにしました。

boxの作成では、カーネルヘッダーやDKMSなどが必要だったり、sudo、SSHの設定があったりと作業がいろいろとあるので、作成に困らないように作業内容をまとめてみました。
スクラッチでVagrantのbox作成

あと、自作や他の人が作成したboxで、たまに起動しなかったりするトラブルがあります。
その場合、ログ出力のレベルをinfoに変更して、より詳細なログで調べると原因が見つけやすかったです。
Vagrant エラーのデバッグ

posted by jun1 at 23:37| Comment(0) | TrackBack(0) | ソフト

2015年11月01日

自作ライブラリをComposerのパッケージとして使えるようにする

ちょっと前にIT関係のニュースを自動で集めるサイトの機能追加を行いましたが、そのときに自作パッケージをcomposerで管理できるようにしてみました。

自作パッケージはgithubの勉強用に作ったもので、ユーザーエージェントでアクセスしたOSや端末を判定するものです。これにcomposer.jsonを追加して、composerでインストールできるようにしてみました。ただし、このプログラムは簡単なものなので、Packagistには登録せずに、composer.jsonのrepositoriesでurlを指定して使っています。

最初簡単にできるかと思いましたが、以下のようなバージョン指定のエラーや、名前空間で結構はまってしまいました。
Your requirements could not be resolved to an installable set of packages.

Problem 1
- The requested package ajisaba/devicedetect could not be found in any versi
on, there may be a typo in the package name.

Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your min
imum-stability setting


PHPだとComposerは必須なので、まだ不十分ですが、とりあえず以下にまとめてみました。
PHP・Composerで自作ライブラリ(パッケージ)をインストール

posted by jun1 at 22:01| Comment(0) | TrackBack(0) | Web