| Linux Tips | |
ロケールの問題でプログラムが正常に動作しない場合には 北浦訓行 |
|
Fedora Coreの公式リポジトリに登録されているパッケージは、動作チェックを行っているため基本的に問題なく動作する。しかし、ロケールの違いなどで正常に動作しないものも存在する。ここでは、ロケールの問題で動作しない「Grip」というソフトウェアを例にその解決法を紹介する(注)。
| 注:ここで挙げた対処方法は、あくまで暫定的な措置なので自己責任の下で作業していただきたい。そのため、新しいバージョンがリリースされた場合は、そちらを使用することをお勧めする。 |
Gripは、音楽CDなどのリッピングに利用されるソフトウェアだ。Fedora Extrasに収録されているが、起動すると「バグ報告ツール」が表示されて異常終了する。
「バグ報告ツール」の情報だけではなく、GNOME端末からもエラー情報を確認できる。GNOME端末で「grip」コマンドを実行すると、以下のようなメッセージが表示される。
$ grip |
最初の行に「buffer overflow detected」とある。これは、jaロケールでバッファオーバーフローが発生していることを示す。対策としては、「日本語以外のロケールで使用する」「プログラムのソースを修正してコンパイルし直す」などが考えられる。
最初に簡単で安全な対処方法を紹介する。それは、日本語のロケールをやめて、英語モードで起動する方法だ。GNOME端末で以下のコマンドを実行する。
$ LANG=C;grip |
これで、英語モードのGripが起動する。
![]() |
| 英語モードで起動したGrip |
次は、日本語でGripを使用する方法だ。この場合は、ソースを修正してパッケージを作成する必要がある(注)。
| 注:開発環境が必要となる。 |
まず、yumで最新版のソースファイルをダウンロードするにはを参考にソースファイルをダウンロードする。Fedora Core 6の場合、GripはFedora Extrasにある。
yumdownloaderをインストールしていない場合は、rootでログインして以下のコマンドを実行する。
# yum install yumdownloader |
以下のコマンドで、Gripのソースファイルをダウンロードする。
# yumdownloader --enablerepo=extras-source --source grip |
次に、ソースファイルをインストールする。
# rpm -ihv grip-3.2.0-15.fc6.src.rpm |
ソースファイルは、/usr/src/redhat/SOURCESにインストールされる。その中のgrip-3.2.0.tar.gzに今回修正するファイル(grip.c)が含まれている。まず、grip-3.2.0.tar.gzを作業用ディレクトリ(/tmp)にコピーして展開する。
$ cp /usr/src/redhat/SOURCES/grip-3.2.0.tar.gz /tmp |
展開したら、grip.cというファイルの518行目を修正する。
char versionbuf[20]; |
char versionbuf[22]; |
修正が完了したら、作業用ディレクトリに戻りtarボールを作成する。
$ tar cvf grip-3.2.0.tar.gz grip-3.2.0 |
rootでこのファイルを元のファイルに上書きする。
# cp grip-3.2.0.tar.gz /usr/src/redhat/SOURCES/ |
今回は修正前のパッケージと区別するために、SPECファイル(grip.spec)を修正する。
# cd /usr/src/redhat/SPECS/ |
修正した個所は、パッケージのリリース番号を示す「Release:」部分だ。ここでは、パッケージのリリース番号の後ろに「_1」を付けた。
Release: 15%{?dist} |
Release: 15_1%{?dist} |
次に、以下のコマンドでパッケージのビルドを行う。
# rpmbuild --bb grip.spec |
結果を見ると、依存性のエラーが発生している。不足しているファイルをyumでインストールして、再度ビルドを実行すれば問題を解決できる。
# yum install vte-devel cdparanoia-devel id3lib-devel |
後は、rpmコマンドでgrip-3.2.0-15_1.i386.rpmをインストール(アップデート)する。
# rpm -Uhv grip-3.2.0-15_1.i386.rpm |
[アプリケーション]メニューの[サウンドとビデオ]−[Grip]を選択すると、日本語のGripが起動する。
![]() |
| 日本語で起動したGrip |
| 関連リンク: | |
| 自分で作るRPMパッケージ http://www.atmarkit.co.jp/flinux/special/mkrpm/mkrpm01.html |
|
| Linux Tips Index |
| Linux Squareフォーラム Linux Tipsカテゴリ別インデックス |
|
ホワイトペーパー(TechTargetジャパン)
- natテーブルを利用したLinuxルータの作成 (2010/2/9)
natテーブルを用い、市販のブロードバンドルータと同等かそれ以上の機能を備える「Linuxルータ」を作成してみましょう - Web監視機能を賢く利用する (2010/2/2)
プロセスの稼働確認だけでは、サービスが正常に提供できているか分からないことも。そこで使いたいのがWeb監視です - ものいわぬOpenLDAPサーバのログ管理 (2010/1/20)
不満をいわないコンピュータが相手だからこそ、常にログが確認できる状態を整備することが重要になります - ネットワークアクセス権も放棄せよ (2010/1/12)
新しいセキュリティ機構「disablenetwork」を提案する1通のメールから始まった議論が、LSMも巻き込む話へと拡大しました
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |








