strings コマンド

2017年10月25日水曜日

子犬で使うアプリケーションを作成や公開されているパッケージを使おうとしてみると 時折こんなエラーメッセージが出ることがあります
不足の依存関係
libatomic.so.1 => not found
libc.so.6 (GLIBC_2.17) => not found
これはシステムにインストールされているlibc.so.6 (GLIBC) ライブラリが古く、動かそうとしているアプリケーションが要求するバージョンと合わないためのエラーが発生していることを意味しています

実際にシステムに組み込まれている libc.so.6 のバージョンを確認するには以下のコマンドを実行します
# strings /lib/libc.so.6 | grep GLIBC
GLIBC_2.0
GLIBC_2.1
GLIBC_2.1.1
GLIBC_2.1.2
GLIBC_2.1.3
GLIBC_2.2
GLIBC_2.2.1
GLIBC_2.2.2
GLIBC_2.2.3
GLIBC_2.2.4
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_2.15
GLIBC_PRIVATE
GNU C Library (Ubuntu EGLIBC 2.15-0ubuntu10.9) stable release version 2.15, by Roland McGrath et al.
この状況を回避するにはlibc.so.6を必要なバージョンが組み込まれた新しいものと入れ替える必要があります
libc.so.6 , libstdc++ は gcc に含まれるモジュールなので、gcc をビルドして、そこから取り出して既存のものと入れ替える
残念ですが 枯れたバージョンの子犬では良く体験することです

通常パピーではstringsコマンドが使えません
stringsコマンドはbinutils_2.22-6ubuntu1.4_i386.debにあります

precise系のパピーのパッケージマネージャーでダウンロードできない
precise ubuntuのパッケージが「old-releases.ubuntu.com」に移動されたのでその対策

/root/.packages/DISTRO_COMPAT_REPOS
PKG_DOCS_DISTRO_COMPAT="archive.ubuntu.com|http://archive.ubuntu.com/・・・・
archive.ubuntu.com → old-releases.ubuntu.com に変更
PKG_DOCS_DISTRO_COMPAT="old-releases.ubuntu.com|http://old-releases.ubuntu.com/・・・・

コマンド

install-mbrIBM-PC 互換機用のマスターブートレコード作成
MBRには大きく分けてブートストラップローダの部分とパーティションテーブルの部分に分けられるが、パーティションテーブルの情報が失われるとHDDの何処にどのようなシステムが保存されているが分からなくなるので、基本的にはそのHDDにあるシステムを救うのは難しくなる
パーティションテーブルが生きているならブートストラップローダの再インストールで再生される

例) install-mbr /dev/sda
nwipeディスクのデータを完全消去
 
binutilsライブラリ(オブジェクトファイルを扱うためのプログラミングツール)
arアーカイブの作成、変更、および展開
addr2lineプログラム内のアドレスをファイル名と行番号に変換
ldリンケージ・エディターまたはバインダーとも呼ばれ、オブジェクト・ファイル、アーカイブ・ファイル、およびインポート・ファイルを 1 つの出力オブジェクト・ファイルに結合して、 外部参照を解決
ld.goldリンカ
ld.bfd
as標準入力を読み取ってアセンブル
stripシンボル情報を削除するためのコマンド
stringsテキストファイル以外のバイナリファイルやデータファイルの中身を確認する
nmオブジェクト・ファイル、実行可能ファイル、またはオブジェクト・ファイル・ライブラリーを示す指定された File 内のシンボルの情報を表示
c++filtC++シンボルのデマングルを行う
objcopy任意のファイルをリンク可能なオブジェクトファイルに変換
dwp
objdumpオブジェクトファイルの情報の表示
elfedit
ranlib
recode-sr-latin
gprofコール・グラフ (call graph) のプロファイルの表示
readelf ELFファイルの中身を表示
gold
sizeセクションの大きさとその合計をリストする
 
gettextライブラリ(国際化 翻訳ファイル作成)
msgfmt翻訳ファイルを生成
msgexec
msgmerge慣例として、'msgmerge'は'<言語>.pox'という名前のファイルを生成
msggrep翻訳カタログから、指定したパターン、指定したソースファイルに属するすべてのメッセージを抽出
msgen
gettextize
msgconv
xgettext慣例として、'xgettext'は'<パッケージ>.pot'という名前のファイルを生成
msgcomm
msgfilter
msgcat
msgattrib
msguniq翻訳カタログ内の重複した翻訳を統一するためのプログラム
msginit新しいPOファイルを作成して、メタ情報をユーザーの環境にもとづいて初期化
msgcmp

共有ライブラリへの依存関係を表示する
ldd [オプション] プログラム
オプション
-d足りないオブジェクトについてレポート
-r足りないオブジェクトや関数についてレポート
-u使用されていない依存関係を表示
-vすべての情報を表示

Copyright © 2010 休眠 | Free Blogger Templates by Splashy Templates | Layout by Atomic Website Templates