GeekFactory

int128.hatenablog.com

依存するライブラリをすべて表示するPerlスクリプト

Linuxバイナリが依存するライブラリを表示するスクリプトです。

#!/usr/bin/perl
use File::Basename;
my %libs;

open(deps, "ldd @ARGV |");
while(<deps>) {
if(/ => (.+) \(/) {
$libs{$1} = 1;
}
elsif(/ =>  \(/) {
}
elsif(/^\t(.+) \(/) {
$libs{$1} = 1;
}
}
for my $self (@ARGV) {
$libs{$self} = 1;
}

for my $lib (keys %libs) {
print $lib . "\n";
}

initramfsの作成に使おうと思ったけど、insmodぐらいならbusyboxでほとんど事足りるんだね。RAIDやLVMのときに活用できそうです。