CentOS 6.6にag(the_silver_searcher)の最新版(2.0)をRPMパッケージにして、インストールする
epelでインストールしたagのバージョンが古かったことが気になり、新しいバージョンのパッケージがないか探してみたが見つからなかった。
仕方ないのでソースからインストールするためagのソースを展開したところ、specファイルがあった。それならrpmパッケージにしてインストールしようと思い、調べながらやってみた。
OSのバージョンは6.6。
$ cat /etc/redhat-release CentOS release 6.6 (Final)
まず、rpmbuildコマンドを使ってtarファイルから直接ビルドしてみた。
$ rpmbuild -ta the_silver_searcher-2.0.0.tar.gz
エラー: ビルド依存性の失敗:
pcre-devel は the_silver_searcher-2.0.0-1.el6.x86_64 に必要とされています
xz-devel は the_silver_searcher-2.0.0-1.el6.x86_64 に必要とされています
必要なパッケージがないというエラーになったので、メッセージに従ってパッケージをインストール。
$ sudo yum install pcre-devel xz-devel
そして、再びビルドした。
$ rpmbuild -ta the_silver_searcher-2.0.0.tar.gz 実行中(%prep): /bin/sh -e /var/tmp/rpm-tmp.YH5hx1 ... Processing files: the_silver_searcher-debuginfo-2.0.0-1.el6.x86_64 伸張ファイルの検査中: /usr/lib/rpm/check-files /home/te2u/rpmbuild/BUILDROOT/the_silver_searcher-2.0.0-1.el6.x86_64 エラー: インストール済み(ただし未伸張)ファイルが見つかりました: /usr/share/zsh/site-functions/_the_silver_searcher RPM ビルドエラー: インストール済み(ただし未伸張)ファイルが見つかりました: /usr/share/zsh/site-functions/_the_silver_searcher
今度は別のエラー。調べてみると、これはパッケージするファイルとインストールしたいファイルのリストに差があると起きるエラーのようで、それを無視するマクロを定義すれば回避できる。
しかし、このマクロはspecファイルで記述するもの。今はtarファイルからのインストールを試しており、このためにわざわざファイルを展開してspecファイルを編集したくない。
そこで他の方法を調べたところ、rpmbuildコマンドにマクロを定義できるオプションがあったので、それを試してみた。
$ rpmbuild -D '_unpackaged_files_terminate_build 0' -ta the_silver_searcher-2.0.0.tar.gz
これでビルドが成功し、パッケージができた。
$ ls ~/rpmbuild/SRPMS the_silver_searcher-2.0.0-1.el6.src.rpm $ ls ~/rpmbuild/RPMS/x86_64 the_silver_searcher-2.0.0-1.el6.x86_64.rpm the_silver_searcher-debuginfo-2.0.0-1.el6.x86_64.rpm
さっそく作成したパッケージをインストールしてagを最新版にした。
$ sudo yum install ~/rpmbuild/RPMS/x86_64/the_silver_searcher-2.0.0-1.el6.x86_64.rpm
agコマンドでバージョンを確認して完了。
$ ag --version ag version 2.0.0 Features: -jit +lzma +zlib
参考
小さな習慣を読んだ
- 作者: スティーヴン・ガイズ
- 出版社/メーカー: ダイヤモンド社
- 発売日: 2017/04/28
- メディア: Kindle版
- この商品を含むブログを見る
個人的に習慣化したいことがいくつかあって、色々試していたときにたまたま見つけた本。
小さな習慣とは、より良いことに向かう行動であり、ばかばかしいと思えるほど小さな行動である。
習慣に関する本で他書との違いは、モチベーションに頼らず、とにかく行動を継続することに重点をおいているところ。
モチベーションに頼らないのは、それが信頼できないから。習慣化したい行動にモチベーションを求めない。行動するとモチベーションが得られることはあるが、それはあくまでボーナスとして考える。
行動の継続に重点をおいているのは、それが習慣の本質だから。習慣になるまでは一般的にいわれる21日から30日ではなく、18日から254日としている。つまり習慣になることを目標にすると、習慣化までの期間が広くはっきりしないために、本当に達成したのか判断しにくい。結局、習慣というのは定期的な行動のことなので、毎日続けるためにどうするかを重視したほうがよい。
この点を踏まえたのが小さな習慣。やるべき行動が小さければ、モチベーションに頼らずに毎日実行することができる。また、毎日続けるために自身の生活習慣に合うような形で行動を決める。これは、小さな習慣が万人に向いているということでもある。
読み終えてみると、どうして自分がこういうことに気づかなかったのだろうと思えるくらいに自然であり、当然と感じるような、そういう気づきが得られた本だった。
CentOS 7.2にGraphvizをインストールする
SchemaSpy6のRC1が出ていたので試そうとしたときのこと。
SchemaSpyではGraphvizを使ってリレーションを図示する。6のRC1で実行するとCentOS7.2のgraphvizのバージョン(2.30)では古い、というワーニングが出たので、本家からrpmパッケージをインストールした。
curl -LO http://www.graphviz.org/graphviz-rhel.repo sudo mv graphviz-rhel.repo /etc/yum.repos.d/graphviz-rhel.repo
repoファイルをダウンロードしてyumのディレクトリに移動する。
sudo yum install \ graphviz-2.38.0 \ graphviz-devel-2.38.0 \ graphviz-gd-2.38.0
パッケージのバージョンを指定しないで実行したところ、2.40をダウンロードしようとして404エラーになったので、ファイルがある最新バージョンを探してインストールした。