| 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ルータの作成・2 (2010/3/11)
IPパケットのディスティネーションアドレスを書き換える「DNAT」を使って、透過型プロキシを構築します - 一歩進んだ監視のカスタマイズ (2010/3/3)
スクリプトの実行結果などを取得できるユーザーパラメータを用いて、自分のニーズにぴったり合った監視を実現 - OSSライセンス順守の第一歩 (2010/2/18)
企業として、OSSライセンス違反を犯さないためには、どのような手順が必要か、いくつかアドバイスします - 無視できないフラグメンテーション問題への解答は? (2010/2/10)
今回は、メモリコンパクション、そしてメモリバリアを発行するシステムコールという2つのパッチについて深く紹介します
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜Java編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |








