作業ノート

様々なまとめ、雑感など

論理トレーニング101題を読んだ

随分前に購入したが、読む機会ができたので読んだ。

論理トレーニング101題

論理トレーニング101題

本書の例題を通じて感じるのは、書かれている文章が安定しているとは限らないという事実である。

内容を理解するために読んでいる段階で、言葉の誤用や論理的に破綻しているかもしれない文章を、自身の論理力を用いて読み解かなくてはならない。

「読みにくい」「わからない」と判断するのは簡単だが、それが文章の不安定によるものか、自身の論理力の弱さなのか、書かれている言葉の意味が理解できていないか、そのときの自分にはわからないのである。

そのような事実のもとで自分にできることは何か。既に書かれている文章を変えることはできない。それなら自身の論理力を鍛えて自分になりに読み解く他にない。

文章の読解の難しさを気付かされた、そういう本だった。

みんなのPython 第4版を読んだ

みんなのPython 第4版

みんなのPython 第4版

ここのところずっとPHPのレガシーなシステムを担当しているのもあって、他の言語を使う機会がない。そこで、久しぶりにPythonをやってみることにした。

Pythonにしたのは今、Python言語によるプログラミングイントロダクションを読んでいるから。本書は、Pyhonに関する本をamazonで調べて購入した本のなかの一冊。

本書は、Pythonを使い始める前段階としてPython3のことを知るための入門書である。

内容はPythonの概要から始まり、Anacondaのインストール、言語仕様、データサイエンス、そしてPython2について。

全体的に、図表やプログラムを用いてわかりやすく説明している。プログラムはインタープリター実行可能なくらいにシンプルなものなので、Python3が実行できる環境であれば試せる。

一方、自分がその内容を理解したどうかを確認するための方法、例えば章末にあるような演習問題といったものはない。

だから、まず本書でPythonのことを知り、より深く理解するために他書を読んだり、コードを書いてみる。そのときわからないことがあれば、本書を読み直してみる。そのような使い方になる本だと思った。

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

参考