ksaitoの日記

日々試したことの覚え書き

コンパイラのないマシンにコマンドをコピーする方法

使いたいコマンドがインストールされていないときは、ソースからコンパイルします。
コンパイラがインストールされていないマシンの場合、すでのコマンドがインストールされている同じアーキテクチャのマシンからコピーしてくることもできます。

コピーする方法

よほどシンプルなコマンドでない限り、コマンド本体以外にシェアードライブラリを複数コピーしてくる必要があります。
例えば、subversionsvnコマンドをコピーするには、次のようにします。

  • svnコマンドを対象のマシンにコピーする
  • lddコマンドで不足しているシェアードライブラリを確認する
$ ldd svn | grep ファイル | awk '{print $1}' > solist.txt
  • コピー元で不足しているシェアードライブラリの場所を確認する
$ ssh mqgwap ldd /opt/csw/bin/svn | grep -f solist.txt | awk '{print $3}'
/opt/csw/lib/libsvn_client-1.so.0
/opt/csw/lib/libsvn_wc-1.so.0
/opt/csw/lib/libsvn_ra-1.so.0
/opt/csw/lib/libsvn_diff-1.so.0
/opt/csw/lib/libsvn_ra_local-1.so.0
/opt/csw/lib/libsvn_repos-1.so.0
/opt/csw/lib/libsvn_fs-1.so.0
/opt/csw/lib/libsvn_fs_fs-1.so.0
/opt/csw/lib/libsvn_fs_base-1.so.0
/opt/csw/lib/libsvn_fs_util-1.so.0
/opt/csw/lib/libsvn_ra_svn-1.so.0
/opt/csw/lib/libsunmath.so.1
/opt/csw/lib/libsvn_ra_neon-1.so.0
/opt/csw/lib/libsvn_delta-1.so.0
/opt/csw/lib/libsvn_subr-1.so.0
/opt/csw/lib/libintl.so.8
/opt/csw/lib/libsqlite3.so.0
/opt/csw/lib/libaprutil-1.so.0
/opt/csw/lib/libldap-2.3.so.0
/opt/csw/lib/libnet.so
/opt/csw/lib/libsasl2.so.2
/opt/csw/lib/liblber-2.3.so.0
/opt/csw/lib/libdb-4.7.so
/opt/csw/lib/libiconv.so.2
/opt/csw/lib/libapr-1.so.0
/opt/csw/lib/libneon.so.26
/opt/csw/lib/libssl.so.0.9.8
/opt/csw/lib/libcrypto.so.0.9.8
/opt/csw/lib/libgssapi_krb5.so.2
/opt/csw/lib/libkrb5.so.3
/opt/csw/lib/libk5crypto.so.3
/opt/csw/lib/libcom_err.so.3
/opt/csw/lib/libkrb5support.so.0
/opt/csw/lib/libexpat.so.1
  • これをtarでかためて持っていく