“docker diff”を使って”pip install”のライブラリインストール先を調べる
はじめに
クラウド化、コンテナ化、マイクロサービス化が進み、システムを 複数の言語で作られたサブシステム で構成することが増えてきました。
どんどん学習も大変になって来ています。
Python、Go、TypeScript、Ruby といろんな言語を学習する必要に迫られているわけですが、それぞれの ライブラリ管理ツール ( PIP、BUNDLER、NPM、... ) がライブラリをどこにインストールするのか調べたいと思いました。
Linux のファイル寿司テム全体で diff
を使って変更されたファイルを確認できれば便利ですね。
そんなときに便利なのが docker diff
コマンドです。
検証環境
docker diff
を使って pip
コマンドでライブラリがインストールされる場所を調べる
それでは docker diff
コマンドを使って pip install
でライブラリがどこにインストールされるのかを調べてみます。
pip
は Python のコマンドですので、Python の Docker イメージを使用します。
1. Docker コンテナの起動
Docker コンテナを起動します。
起動する際に わかりやすい名前を付けておきます 。
今回は example
という名前をつけました。
無事起動できました。
2. pip install
を使ってライブラリをインストール
pip install
でライブラリをインストールしてみます。
何でも良いのですが今回は Pandas をインストールしてみました。
インストールが終わったら exit
します。
3. docker diff
コマンドを使って追加/変更/削除されたファイルを確認
docker diff
コマンドを使って、Linux ファイルシステム上の追加/変更/削除されたファイルを確認します。
コンテナ作成時点から変更されたファイル が一覧表示されます。
各行の左端の文字は、種別(追加(= A)、変更(= C)、削除(= D))を示しています。
コンテナ作成時点には存在しなかったファイルが見つかった場合は「A」フラグ付きで出力されますし、コンテナ作成時点には存在していたディレクトリが見つからなかった場合は「D」フラグ付きで出力されます。
pip install
にて、大量にファイルが追加されたようです。
ということで、インストール先は/usr/local/lib/python3.9/site-packages/pandas
であることがわかりました。
ひとこと
プログラムのバグで 「想定しないファイルが書き換えられているのかもしれない」 といった場合の調査にも利用できるのではないでしょうか?
ディスカッション
コメント一覧
まだ、コメントがありません