torutkのブログ

ソフトウェア・エンジニアのブログ

Linux

CentOS 5用のC++ライブラリ(Qt/ACE+TAO/Boost)RPMパッケージ作成

以下のC++開発用ライブラリがバージョンアップしているので、CentOS 5用にRPMパッケージを更新してみました。RPMパッケージはファイルサイズが大きいので、個人ページでは容量制限をオーバーしてしまい、手順のみCentOS 5用バイナリパッケージのWebページで…

VMware上のLinux(CentOS)でoprofileの使用

プロファイラoprofileで性能計測ができると聞いて、自宅PCで実験してみましたが、機能していません。 # opcontrol --start Using default event: CPU_CLK_UNHALTED:100000:0:1:1 Using 2.6+ OProfile kernel interface. Using log file /var/lib/oprofile/sa…

バックグラウンドで実行するプロセスの標準入力は・・・

標準入力からキー入力を受けるプログラムを、シェルスクリプト等ターミナル以外からバックグラウンド実行すると、EOFを読み続ける状態になるようです。ちょっとしたキー入力処理を付けた以下のようなプログラムを用意しました。 int main(int argc, char* ar…

Bootchartコマンドの実行エラーとJavaのバージョンとOpenJDK

CentOS 5.2にBootchartを入れて、Linuxの起動時間の詳細を調べようとしました。マシン起動時にbootchartログ版カーネルオプションを選択し、起動後、bootchartコマンドを実行するのですが、1台目のマシンは正常に見れましたが、2台目のマシンでは、bootchart…

flymakeの設定改善

CentOS 5のEmacsは21で、flymakeがうまく動かなかったので、flymakeを標準搭載しているEmacs 22をビルドして使用しています。 ここで、Emacsの設定が暗い背景に明るい文字であると、エラー行の色が明るいピンクと文字が見えなくなってしまい、いまいちです。…

動的共有ライブラリのバージョン管理

d:id:torutk:20081103でBoostライブラリのSONAMEについて調べていました。今回は、自分で作成するプログラムにおいて、動的共有ライブラリファイルのSONAMEの仕組みを使ってバージョン管理をする方法を模索しました。 やりたいこと C++のプログラムを動的共…

CentOS 5.2のカーネルを新しいバージョンに入れ替える(第2回)

昨日の失敗はVMwareによるところが大きいのではと思い、別のマシンで試すことに。昨日の手順と同じにビルドして再起動したところOKでした。かなりあっさり成功するものです。 カーネルのバージョンの振り方 LinuxカーネルのバージョンはMakefileに書かれてい…

CentOS 5.2のカーネルを新しいバージョンに入れ替える(第1回:挫折編)

Red Hat Enterprise LinuxとそのクローンであるCentOSは、メジャーバージョンが同じ場合、Linuxカーネルのバージョンは固定(パッチは随時あたっているが)です。CentOS 5の場合、Linux 2.6.18で固定です。そこで、新しいドライバが必要だが2.6.18(+RedHat…

GCCのコンパイルオプションで関数トレーサ

この本の「#77 関数へのenter/exitをフックする」で、GCCのコンパイルオプション-finstrument-functionsを使い、関数が呼び出された時、関数から復帰するときにフックを入れる方法が紹介されています。フック関数のシグニチャは以下です。 void __cyg_profil…

Linux glibcで、LD_AUDIT機能による関数トレース

この本の「#77 関数へのenter/exitをフックする」で、GCCのコンパイルオプション-finstrument-functionsを使い、関数が呼び出された時、関数から復帰するときにフックを入れる方法が紹介されています。これはコンパイルオプションで埋め込むものですが、同書…

yumの更新サイト複数アクセス時、同じ名前のパッケージは隠蔽される?

RHEL5/CentOS 5には標準でdoxygen-1.4.7が提供されています。しかし、UTF-8環境で使うには、UTF-8対応したdoxygen-1.5.2以降が欲しくなります。 そこで、doxygenソースをダウンロードし、RPMパッケージを作成して自分用yum更新サイトに置いたのですが、yumで…

CentOS 4から5へのアップデートメモ

CentOS 4.5が動いているマシンを、CentOS 5.2にアップデートしました。yumでのupgradeではうまくいかないとの記述をインターネット上で目にしていたので、CD-Rからアップデート・インストールしました。 SELinuxとSamba アップデート後、SELinuxが有効になっ…

IPv6 ソケットプログラミング(マルチキャスト)

CentOS 5.1(カーネル 2.6.18-53.el5)にて、IPv6 UDPマルチキャストの受信処理を記述する際、マルチキャストアドレスをbindすると、リンクローカルの場合にエラーとなりました。(Invalid Argument)UDPマルチキャスト受信では、当初アドレスは0でポート番…

watchコマンド

上記記事を見ていたときに知ったwatchコマンド。--intervalで指定した時間ごとにコンソール出力を更新するもので、コンソール環境でコマンド実行結果を定期的に見るのに適しています。コマンド実行結果をフルスクリーンで更新するので、変化したところだけ変…