sseze's blog

インターネットとガジェットが好きな人のブログです

USBブートで"SYSLINUX 4.04 EDD"と表示された時の解決法

f:id:sseze:20120526125249j:image
ちょっと前にノートのOSをfedora16にした。
その際、USBメモリにOSイメージを焼きインストールしたのだが、最初のブート時に以下のようなエラーメッセージが出て先に進まなかった。日本語での解決法が見つからなかったので、一応記事に残しておく。

エラーメッセージ

  • SYSLINUX 4.04 EDD

もしくは

  • SYSLINUX 4.06 EDD

対処方法

SYSLINUXとは、FATファイルシステム上に格納したLinuxカーネルを起動できるブートローダのことらしい。つまり、ブートローダが正常に読めないため、起動ディスクの場所が特定できない、と。
fedora固有の問題ではないらしく、Ubuntuのサポートページに対処法が載っていた。

On the USB key, rename the isolinux folder to syslinux.

In the same folder, rename the isolinux.bin and isolinux.cfg files to syslinux.bin and syslinux.cfg, respectively.

Now, try booting with the USB drive again.

http://askubuntu.com/questions/128160/trying-to-boot-from-usb

要するに、USBメモリにイメージを書き込む際に、"isolinux"となっているフォルダ(及び、そのフォルダ内のファイル名)を、"syslinux"にリネームしろと。
ちなみに、自分の場合はこれでもうまくいかず、試しに別のUSBポートに挿してみた結果、ようやくブートできるようになった。リネームしてもうまくいかない場合は、USBポートに問題がある可能性があるので、別のUSBポートも試してみると良い。

ご無沙汰してたUbuntuのPHPが腐っていた件

先日、某プログラミング初め(ぞめ)イベントで久々に自分のノートPCでPHPのコードを書いたときのこと。
変数の値をデバッグプリントしようとCUIで実行してみると、

Failed loading /usr/lib/php5/20090626+lfs/xdebug.so:  /usr/lib/php5/20090626+lfs/xdebug.so: cannot open shared object file: No such file or directory
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysql.so' - /usr/lib/php5/20090626+lfs/mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/mysqli.so' - /usr/lib/php5/20090626+lfs/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pdo_mysql.so' - /usr/lib/php5/20090626+lfs/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/sqlite.so' - /usr/lib/php5/20090626+lfs/sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0


と、エラーメッセージが出まくってしまい、どうもビルドに失敗している模様。
ハッカソンにも関わらず、他のメンバーのPC上でデバッグをしてもらうというまさかの大失態。。。


Symfony2の開発環境を入れてからしばらくPHPのメンテナンスはご無沙汰だったのと、同時にVPSでソースによるビルドも試していたせいで、自分がどういう風に開発環境を構築したのか思い出せず、とりあえずエラーメッセージでググってみたのですが、英語版のUbuntuフォーラムで

i did the following: apt-get install php5-mysql and now the error is:

Were they the regular updates that broke your php5-mysql or a version upgrade?
You are using 10.04 as I can see from your details? If correct, try

Code:
sudo aptitude install --reinstall php5-mysql

などと書いてあるので試しにphp5-mysqlを入れ直したところ、sqlite.so以外の項目はエラーメッセージが消えました。
SQLiteも同じ方法で消えるのかと思いきや、そういう訳ではないみたい。
エラーメッセージでググッてみるとsqlite.ini消しちまえばなんとかなるっしょ!みたいなページがヒットしたのだが、なんだか根本的な解決にはなっていない気がした。

$ locate sqlite.so
/usr/lib/libsqlite.so.0
/usr/lib/libsqlite.so.0.8.6
/usr/lib/php5/20090626+lfs/pdo_sqlite.so

sqlite.so入ってないっぽい。

.soのファイルはCで書かれたPHP拡張モジュールのことで、PECLでインストールするらしい。

$ sudo pecl install sqlite
downloading SQLite-1.0.3.tgz ...
Starting to download SQLite-1.0.3.tgz (371,189 bytes)
............................................................................done: 371,189 bytes
50 source files, building
running: phpize
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module

If the command failed with 'phpize: not found' then you need to install php5-dev packageYou can do it by running 'apt-get install php5-dev' as a root userERROR: `phpize' failed

↑のエラーメッセージだと、php5-devをインストールすればいい感じだが、upgradeしても上手くいかない。ここで詰まった。
要はphpizeを使うためのconfig.m4っていうモジュール(?)を入れる必要があるらしいのだが、ソースからビルドしたり何なりする必要があるって情報しか出てこない。そもそもSQLiteを使うつもりはなかったので、ここで諦めた。(というかいつの間にSQliteとか手を出してたんだ俺は…)


ひとまず今回は、sqlite.iniをリネームして無効化させることでエラーメッセージは消えた。

$ sudo mv /etc/php5/conf.d/sqlite.ini /etc/php5/conf.d/sqlite.ini.old
$ php -v
PHP 5.3.6-13ubuntu3.3 with Suhosin-Patch (cli) (built: Dec 13 2011 18:37:10) 
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
    with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans


余談だが、PHP上でMeCab(形態素解析で有名なプログラム)を動かすぞーっていうときには↑の問題に立ち会う必要が出てくるみたい。



参考サイト:
[ubuntu] Updated packages now php/mysql is not working - Ubuntu Forums
Centos5でSQLiteを使うには | あいしん スタッフぶろぐ
メモ 【php】zlibのインストール

UbuntuのブラウザにJREを移植

最近は割と就活モードということで、企業のWeb適性検査を受ける機会が増えてきている。

大体のWeb適性検査は、Javaアプレットで動いているため(Screenshot防止とかブラウザを開きながら解くことを禁止しているものと思われる)、Ubuntu上のブラウザにJREを入れる必要性が出てきた。

普段、ChromiumUbuntuGoogle Chrome)とFirefoxを兼用しているのだが、ChromiumのpluginはFirefoxのものを間借りしているようなので、以下の操作を行うとどちらのブラウザでもJREが使えるようになる。

% sudo apt-get install sun-java6-plugin  // synapticで入れても可
% cd /usr/lib/mozilla/plugins  // Mozillaのpluginへ移動
% sudo ln -s /usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/i386/libnpjp2.so .  // libnpjp2.soへのシンボリックリンクの作成

ブラウザを再起動し、ロケーションバーに『about:plugins』と打ち込む。
以下のようにJava-Pluginが読み込まれていればOK。

f:id:sseze:20111226030543p:image

f:id:sseze:20111226030542p:image


ということで、JREが出来上がったので実際にWeb適性検査を試してみたのだが、
f:id:sseze:20111226030544p:image


<結論>
Web適性検査はちゃんとIEで受けよう。


ちなみに副産物としてこちらはUbuntu上でも動かせるようになった。
学生プログラマ日本一決定戦 - CODE VS 2.0(コードバーサス2.0)


参考:
Ubuntu日本語フォーラム / 10.04でChromium用にJava Runtimeをインストールしたい

ssh公開鍵認証の設定で躓いたときに読むTips

先日、開発に本腰入れるため、さくらのVPS(一番安いの)を借りた。
で、sshの認証をPWから公開鍵認証にしようと思ってカチャカチャやってたのだが、なぜか

Agent admitted failure to sign using the key.
Permission denied (publickey,gssapi-with-mic).

って怒られまくる。

% ssh-add ~/.ssh/id_rsa

ssh-agentにパスフレーズ覚えこませることで、とりあえず↑のエラーは消えるのだが、セキュリティ上パスフレーズ打たないでおkになるのはなんだかしっくり来なかったので、ちょっと調べてみると、クライアント側で

% SSH_AUTH_SOCK=0

と打つと、ちゃんとパスフレーズを訊かれるようになった。
SSH_AUTH_SOCKというのはssh-agentの環境変数らしいのだが、仕様書を読んでもイマイチわからない。
この辺読んでみると、どうもOpenSSHのバグらしい?


参考サイト:
Sampathaya ONLINE: Agent admitted failure to sign using the key. Permission denied (publickey).
共通テーマ: OpenSSH キー (鍵) の管理: 第 2 回