投稿

Google Test 1.7.0

CentOS 6.5 で Google Test 1.7.0 を使えるようにします。 といってもそれほど難しくありません。 https://code.google.com/p/googletest/ にアクセスし Downloads  を開きます。 gtest-1.7.0.zip  をクリックしてダウンロードします。 指定のフォルダーへ展開します。展開先の親フォルダーとなるところを指定するとその下に gtest-1.7.0 というフォルダーが作成されます。以下はホームフォルダーに展開する例。 $ unzip gtest-1.7.0.zip -d ~ 展開後はこんな感じ $ cd ~/gtest-1.7.0/ $ ls CHANGES         CONTRIBUTORS  Makefile.am  README      build-aux  codegear   configure.ac  include  make  samples  src   xcode CMakeLists.txt  LICENSE       Makefile.in  aclocal.m4  cmake      configure  fused-src     m4       msvc  scripts  test README ファイルに従って libgtest.a を作成します。 $ gcc -isystem ~/gtest-1.7.0/include -I ~/gtest-1.7.0 -pthread -c ~/gtest-1.7.0/src/gtest-all.cc $ ar -rv libgtest.a gtest-all.o Google Test は C++ 用のテストフレームワークですが、extern "C" を使うことと C と C++ の違いを意...

CentOS 6.5 で Visual Studio Code

Windows では長年テキストエディタとして PeggyPro を使用してきましたが、作業が Linux へ移行したり PeggyPro 自体も終了したりしたので次のテキストエディターを探しているところです。 Visual Studio Code というものがマイクロソフトからプレビュー版があるというのでダウンロードしてみました。 https://code.visualstudio.com Linux 64bit 版です。インストールは /opt に入れることにしました。 $ sudo unzip VSCode-linux-x64.zip -d /opt シンボリックリンクを作成します。 $ sudo ln -s /opt/VSCode-linux-x64/Code /usr/local/bin/code インストールできたので実行してみます。 $ code ./Code: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./Code) ./Code: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./Code) ./Code: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /opt/VSCode-linux-x64/libnode.so) ./Code: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/VSCode-linux-x64/libnode.so) ./Code: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /opt/VSCode-linux-x64/libgcrypt.so.11) ./Code: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by...

Linux で SATA ドライブのシリアル番号を表示するスクリプト

仕事柄、ストレージを扱うことが多いのですが、SATAドライブのシリアル番号を調べる必要がありました。 サーバーのSATAポートに直接接続されているものであれば hdparm で調べられますが、LSI のSAS-HBA に接続されているドライブには hdparm は使用できません。 こんなときは sg3_utils を使用することで SAS-HBA 越しの SATA ドライブのシリアル番号を取得できます。 sg_sat_identify DEVICE と指定すればドライブの IDENTIFY DEVICE DATA を見ることができます。しかしさすがに見づらいのでスクリプトと od で整形して表示するようにしました。 # シリアル番号の取得 # 入力: # $1 デバイスファイル get_serial_number() { local a=(`sg_sat_identify --raw $1 | od -j 20 -N 20 -t a -A n`) for i in `seq 0 2 18` do if [ "${a[$i + 1]}" != "sp" ] then ser="$ser${a[$i + 1]}" fi if [ "${a[$i]}" != "sp" ] then ser="$ser${a[$i]}" fi done echo $ser } いががでしょうか。 sg_sat_identify がエラーを返したとき終了ステータスを取得する方法がわかりません・・・

CVS リポジトリーを Mercurial へ変換 (SJIS コミットログを UTF-8 に変換)

Mercuiral にはリポジトリーを変換する機能があります。 かって CVSNT で作成していたリポジトリーを Mercurial に変換したので記録しておきます。 重要: この作業は Linux で作業した方が圧倒的にトラブルが少ないです。 Windows 環境では CVSNT が邪魔をして コンバート自体がうまく動作しません。 今回は CentOS 6.5 に Mercurial をソースからインストール した環境で作業を行いました。 1. コンバートエクステンションを有効にする 前提としてコンバートエクステンションを有効にしておく必要があります。 .hgrc に [extensions] hgext.convert= を追加して有効にしておきます。 2. hghook-cvslog-transcoder を用意する。 CVS で作成してきたリポジトリーのコミットログは SJIS (cp932) です。mercurial の機能だけでコンバートするとコミットログは SJIS のままなので文字化けしてしまいます。 そこで  hghook-cvslog-transcoder  を利用します。  ダウンロード と書いてあるリンクからダウンロードできます。ここでは ~/hghook-cvslog-transcoder に展開したとします。 3. CVSリポジトリーを取得する。 CVS リポジトリーをローカルにコピーします。ローカルにコピーした方がトラブルが少ないですし、やり直しも楽です。ここではコピーしたリポジトリーを ~/cvsroot とします。 Windows Server から Linux へのファイルコピーですが、今回は Windows の共有フォルダーにリポジトリーをコピーしてから Linux のファイルブラウザでコピーしました。 4. CVS から変換対象のモジュールをチェックアウトする。 コピーしたCVSリポジトリーから変換対象となるモジュールをチェックアウトします。ここでは module とします。 $ cvs -d ~/cvsroot co module 5. Mercurial にコンバート。 後は変換するだけです。 --config オプショ...

CentOS 6.5 でシリアルポートに接続する方法

シリアルポートを持った機器に接続する場合、Windows だったらハイパーターミナルや TeraTerm を使うんですが Linux の場合は何を使えばよいのか調べました。 screen というツールがよさそうです。 インストールは yum でおこないます。 $ sudo yum install screen シリアルポートは /dev/ttyS0 になっていますので $ sudo screen /dev/ttyS0 115200 の様に起動します。115200 は転送レートです。 終了は Ctrl + a のあと k を押します。メッセージが表示されますのでそれに従ってください。

Debian 7.8 で TortiseHg / Mercurial

イメージ
CentOS では使うのをあきらめた TortoiseHg が Debian ではパッケージが提供されているので簡単に使えます。 さっそく 使用できるようにした sudo コマンド をつかってインストールです。 $ sudo apt-get install tortoisehg メニュー>プログラミングから実行できます。 通常の hg コマンドも同時にインストールされます。

Debian 7.8 で sudo コマンドを使えるようにする

CentOS と同様に  Debian Linux でも sudo コマンドを使用できるようにします。 Debianではデフォルトでwheelグループがありませんが、変わりに sudo グループがあります。こちらにユーザーを追加すればよいようです。 $ su パスワード: # usermod -a -G sudo yourname /etc/group をみるとユーザーが追加されているのが分かります。 一旦ログアウトしてログインすると sudo コマンドが使用できるようになりました。