Linux rpmコマンド Tips rpmのファイルリスト・rpmのファイル取出し・rpm削除

いまどきrpmを使うことは少ないかもしれないが、いざ使う時になるとちょっと必要になったTIPを3連発。

■rpmでインストールされるファイル一覧を出力

rpm -qlp rpmファイル名
rpm -qlp td-agent-1.1.20-0.i386.rpm

■rpmのファイルを取り出す(いったんディレクトリいかに展開する)

mkdir test
cd test/
rpm2cpio ../td-agent-1.1.20-0.i386.rpm  | cpio -id

testディレクトリ以下に、インストールされるファイルが解凍される。

■rpmの削除

rpm -e rpmパッケージ名

rpm -e td-agent-1.1.20
カテゴリー: Linux, サーバ管理 | タグ: | コメントする

td-agent 古いバージョンをrpmインストールする

本番機と環境を合わせるためにRedHat5の32bitにtd-agentの1.1.20をインストールする。

バージョンを古いものでインストールしたいのでrpmを直接インストールする。
ビルドする必要があるとの情報もあったが、公式サイトにはまだrpmが残っていた!
これを利用すればよい。

td-agentバージョン1系の保存場所

td-agentとtd-libyamlの二つをダウンロードする。
rpmインストールしようとしたら、libxsltが必要といわれたが、こちらは普通にyum install libxsltでOK。

# rpm -ivh td-agent-1.1.20-0.i386.rpm td-libyaml-0.1.4-1.i386.rpm
警告: td-agent-1.1.20-0.i386.rpm: ヘッダ V3 DSA signature: NOKEY, key ID a12e206f
エラー: 依存性の欠如:
        libexslt.so.0 は td-agent-1.1.20-0.i386 に必要とされています
        libxslt は td-agent-1.1.20-0.i386 に必要とされています
        libxslt.so.1 は td-agent-1.1.20-0.i386 に必要とされています
# yum search libxslt
Loaded plugins: amazon-id, fastestmirror, rhui-lb, security
Loading mirror speeds from cached hostfile
 * rhui-REGION-client-config-server-5: rhui2-cds01.ap-northeast-1.aws.ce.redhat.com
 * rhui-REGION-rhel-server: rhui2-cds01.ap-northeast-1.aws.ce.redhat.com
Excluding Packages from Red Hat Enterprise Linux Server 5 (RPMs)
Finished
=================================================== Matched: libxslt ====================================================
libxslt.i386 : Library providing the Gnome XSLT engine
libxslt-devel.i386 : Libraries, includes, etc. to embed the Gnome XSLT engine
libxslt-python.i386 : Python bindings for the libxslt library
python-lxml.i386 : ElementTree-like Python bindings for libxml2 and libxslt
# yum install libxslt.i386
カテゴリー: Bigdata | タグ: | コメントする

Ansible Shellモジュールで複数行記述

モジュール化されていない場合はCommandかShellモジュールで実行するOSコマンドを記述する。

基本的にはCommandを利用するように推奨されているが、パイプやらリダイレクトやらがある場合はShellモジュールを利用する。

複数行記述するにはどうするか?
下記のように;で区切って並べるとよい。
;を入れないと続きとみなされるので注意。

- name: git clone and rbenv
  shell: >
    git clone https://github.com/sstephenson/rbenv.git ~/.rbenv;
    git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build;
    echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile;
    echo 'eval "$(rbenv init -)"' >> ~/.bash_profile;
  tags: ruby

複数行実施した場合、どこでこけたかがわかりずらい。
面倒でなければ一つずつタスクを切るのがお勧めである。

カテゴリー: Ansible | コメントする

トラブルシューティング mavenでdependencyのjarが落ちてこない

とあるモジュールをバージョンアップしたタイミングでpom.xmlに記述されているjarが落ちてこないという問題が発生。
実行時にNoClassDefFoundErrorが発生して発覚。

もちろん以前からさんざん取り上げている通りNoClassDefFoundErrorの原因はそのクラスがないことなのでjarがないことを確認した。

落ちてこないjarは依存モジュールがさらに間接的に依存しているjarである。
そしてそのモジュール単体のpom.xmlには依存関係が記載されており、
mvn dependency:treeを実行すると該当のjarが表示される。

ただしプロジェクト全体のpom.xmlを読み込ませてdependency:treeを実施すると該当のjarが表示されない。
よくよく見てみると以下のメッセージが出力されており、なにやら問題ありそうだ。

[WARNING] POM for ‘xx.xx.xx:pom:1.0.xx:compile’ is invalid.

このメッセージが出ていると、該当jarの依存関係を無視してビルドを進めるため、ビルドが成功しているように見えて、
必要なjarがないという危険な状態でビルドが終わる。

根本原因はpom.xmlのアップロード時に変換されて、dependencyが落ちていたことである。
サードパーティライブラリなので手動でmvnコマンドをたたいたのだが、勝手にオリジナル違うpom.xmlを生成する凶悪なデフォルトのふるまいである。手元にあるpom.xmlを指定しているのに、それをアップロードしてくれないという・・・

この凶悪なふるまいを変更するには-DgeneratePom=falseを付与して、mvnコマンドを実施すること。

mvn deploy:deploy-file -Dfile=parent.pom  -Durl=http://www.rutake.com/nexus/ -DrepositoryId=myrepo  -DgroupId=com.rutake.common -DartifactId=common -Dversion=1.0.99 -Dpackaging=pom -DgeneratePom=false
カテゴリー: Java | タグ: | コメントする

MSDN 14年ぶりに加入

以前にMSDNを導入した時はVisualStudio.net初登場の時期だったと思われる。

MS製品からは離れること久しいのだが、Azureの利用権利もついてくるというので思い切って二年ライセンスのOpenValueに申し込んでみた。

しかしMSDNの申し込みから利用開始までには紆余曲折ありすぎたのでメモとして残しておく。

2015/10/02 代理店より購入し、クレジットカードで支払い手続き完了。MSより「マイクロソフト ボリューム ライセンス サービス センター (VLSC) にようこそ」が約3営業日で届くとのこと。

2015/10/08 MSより上記メールが届く。しかし勤務先アドレスの登録で確認メールをクリックするとエラーとなって先に進まない。どうも勤務先アドレスにgmailのエイリアス機能が入っていると不具合が発生するもよう。マイクロソフトのサポートに電話して、代理店にアドレスの変更依頼を投げてやり直し

2015/10/13 再びMSから自動送信メールが届く。今度は無事成功!

教訓:MSDNではトラブルのもとになるのでgmailのエイリアス(+)を使うのはやめておこう。

何もなければ4営業日見ておけば利用可能になるだろう。

カテゴリー: MSDN | コメントする

カゴヤ・クラウド VPS 起動は早いがインスタンスの停止は遅い

カゴヤクラウドのVPSの立ち上がりは早いことは先日記事にした。
ほぼ一分以内に立ち上がる。

カゴヤクラウドの課金体系はインスタンスを停止している間も課金される。
12時過ぎたら翌日分課金されるため、古いインスタンスを停止して、削除しようと思ったけど、
なんと停止に2分以上かかるという状況。

どうもWebページのコントロールパネルがすさまじく重いのである。停止終わったら12時きっかりでこれで削除してもすでに翌日課金になっているから意味ない!

ちょっとこの停止の遅さはWebサイトの障害かと勘違いするほど遅いので(ブラウザによってはタイムアウトされてしまうかも!)改善してほしい。

追記:
いままで初期化にはインスタンスを削除して新しいのを作成していたが、カゴヤ・クラウドVPSにはインスタンス初期化というオプションがあり、これを利用するとIPそのままで初期化ができる。わざわざ消さなくていいのでこちらを今後は利用していこう。

カテゴリー: サーバ管理, 仮想化 | コメントする

Let’s note 2015秋モデル 東京でのお披露目は今週末秋葉原電気街口

ほかのモデルはプラットフォームが流用されているなか、CF-SZ5はプラットフォームが一新されているので実物を見てみたい。

と近くの有楽町ビックカメラを訪問したが、あったのはモックアップのみ。
重量は本物に近く、キーボードもおそらく製品版と同じと思われるのでタッチを試してきた。

予想通り、CF-SXシリーズとは対して違わないキータッチである。

裏面を見たところメモリをはめるような蓋が一切ないので、メモリの増設は分解必須になると思われる。
SSDもどこから交換するのか?
CF-S10もCF-SX1もバッテリーをはずしてから交換なので、SSD交換をDIYで交換できる可能性は残っているかもしれない。

いずれにしても実物に触れられるイベントが今週末に秋葉原電気街口の改札で行われるらしいので、ちと触りに行ってみようかと思う。

カテゴリー: Let's note | コメントする

td-agent/fluentd tailの出力がないときはposファイルを消してみる

td-agentで設定試験中に
tailしているのにどうしても、あるログの出力が出ない事態が発生した。

設定を最小限に削ってみても、まったくtailされていないっぽい。
もちろん元のファイルには出力されている。

しばらく格闘したのちにposファイルが悪さをしているのかもとひらめき、posファイルを削除したうえでtd-agentを再起動。
すると無事tail再開してくれた。

テスト設定なので、三連休期間には止めていた。

該当ファイルは毎日ログローテーションされる設定で、
td-agentは該当ファイルに対して監視しておらず、ログローテーションされて、POSファイルの行数>新しいファイルの出力行数という状況になっていたようだ。

というわけで何かわからんけど出ない!という時はposファイルをきれいさっぱり消してしまおう。

カテゴリー: Bigdata | タグ: , | コメントする

WordPress Captcha by BestWebSoft プラグイン導入でスパムコメント撃退

ログイン時などに見えずらい画像に描かれた文字を合わせて入力する形式をCaptchaという。
主にプログラムなどによる自動コメントスパム投稿や自動ログインなどに対処するために編み出された方式だ。

ただこの画像形式音Captchaは通常のユーザーにとっても利便性を著しく下げるので、あまり使いたくはない。

とはいえコメントの9割以上がスパムという事態に直面しては何とかしなければならぬと思って、画像形式ではなく簡単な足し算で自動コメントスパムを防ぐプラグインを発見した。

表題の通りBestWebSoftが出しているCaptchaプラグインであり、この記事のコメント欄を見ればわかるようにアラビア数字と漢数字で簡単な計算の穴埋めをしないとコメントできないようになっている。

このプラグインを有効にしてから自動投稿スパムは来なくなった!

カテゴリー: plugin, WordPress | タグ: | コメントする

シェルプログラミング 引数のnullチェック -z

シェルで引数や変数の値が設定されているかどうかを判定したいときは-zを利用する。

# 第二引数が指定されていない場合
if [ -z $2 ]; then
  echo "第二引数を指定してください"
  exit 1
fi
カテゴリー: Linux, シェルプログラミング | コメントする