ドラマ『櫻子さんの足下には死体が埋まっている』
骨が好きってどういう感覚なんでしょう。魚の骨は見慣れてますので、綺麗に魚が食べられた時は、魚の骨美しい、なんて思います。そんな感覚でもないんでしょうねえ。
櫻子さんはスイーツが好きみたいで、ヘビーな骨を見た後に、骨休みになります。スイーツは次話以降もたくさん出てきそうで楽しみです。
/bin直下のコマンドのバージョン確認の続きです。
前回は、bzgrepまで見たので、バージョンがわからない次のコマンドは、chaclです。
bzgrep FALSE bzip2 TRUE bzip2, a block-sorting file compressor. Version 1.0.6, 6-Sept-2010. bzip2recover FALSE bzless TRUE bzip2, a block-sorting file compressor. Version 1.0.6, 6-Sept-2010. bzmore TRUE bzip2, a block-sorting file compressor. Version 1.0.6, 6-Sept-2010. cat TRUE cat (GNU coreutils) 8.23 chacl FALSE chgrp TRUE chgrp (GNU coreutils) 8.23 chmod TRUE chmod (GNU coreutils) 8.23 chown TRUE chown (GNU coreutils) 8.23 chvt FALSE
ということでchaclのバージョンを発掘しましょう。
fileコマンドでバイナリを確認します。
takk@deb8:~$ file /bin/chacl /bin/chacl: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]= ef924411e9764d3683db5692817d55ab89d16520, stripped takk@deb8:~$
バイナリには、ビルド時点の情報が詰まっています。
BuildIDが一致すれば、同一プログラムです。
stripppedは、バイナリからシンボルを削除してコンパクトにした意味で、ビルド後の情報になります。
chaclのバージョン発掘の前に、バージョンが一致していることが確実なコマンドで、このBuild IDの一致確認をしてみましょう。
takk@deb8:~/src$ apt-get source coreutils takk@deb8:~/src/coreutils-8.23$ ./configure takk@deb8:~/src/coreutils-8.23$ make
catのバイナリはここにできました。
takk@deb8:~/src/coreutils-8.23$ find -name cat ./src/cat
ではfileコマンドで両者を比較してみます。
takk@deb8:~/src/coreutils-8.23$ file src/cat /bin/cat src/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=e0d4017bc2ec449df1d9694e0a8cf6b5039f6187, not stripped /bin/cat: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=9da4332bd2b4ead38ac07ec3af90852cc328de14, stripped takk@deb8:~/src/coreutils-8.23$
Build IDが一致しませんでした。
バージョンが一致してても、Build IDが一致しないとなると、バージョン探しは骨が折れそうです。
コメント