apt-get install でインストールしたソフトの一覧を出力する

公開日: : 最終更新日:2014/02/12 Lubuntu, Perl, Ubuntu

Ubuntu(Lubuntu) の端末で apt-get install でインストールしたソフトの
一覧を出力するコマンドはなさそうなので、Perl で書いてみた。

#!/usr/bin/perl

use strict;
use warnings;
use Getopt::Long;

my @history_files = (
	       "~/.zhistory",
	       "~/.bash_history",
	      );
my %apt_list;
my $opt_cmd;
GetOptions('command' => \$opt_cmd);

for my $history_file (@history_files) {
    my $cmd = "cat $history_file | grep 'apt-get install'";
    my @res = `$cmd`;

    for my $line (@res) {
	chomp $line;
	if ( $line =~ /install (.*)$/ ) {
	    my @apps = split(" ", $1);
	    for my $app (@apps) {
		$apt_list{$app} = 1;
	    }
	}
    }
}

if ( $opt_cmd ) {
    print "sudo apt-get install ";
    for my $app (sort keys %apt_list) {
	print $app . " ";
    }
} else {
    for my $app (sort keys %apt_list) {
	print $app . "\n";
    }
}

やっていることは非常に単純で、
シェルの履歴から apt-get install を grep で抜き出して、
整えているだけ。

上記のスクリプトを使う場合は
make_apt_install_list.pl
とか適当にファイルを作成して貼り付ける。

“~/.zhistory” の部分をhistoryファイルの名前に適宜変更。
僕は bash と zsh を使っているので、複数ファイルにも対応している。

ファイルの準備ができたら、実行権限を与える。

% chmod +x make_apt_install_list.pl

実行したらずらーっと一覧が出力される。
重複は排除、昇順にソートしてある。

% ./make_apt_install_list.pl
cmigemo
curl
emacs-mozc
emacs-mozc-bin
emacs24
fcitx
fcitx-frontend-qt5
fcitx-libs
fcitx-mozc
fontforge
git
libssl-dev
screen
ttf-vlgothic
ubuntu-defaults-ja
vim
xclip
zsh

なお、一気にインストールするコマンドを出力するオプションも用意。(-c)

% ./make_apt_install_list.pl -c
sudo apt-get install cmigemo curl emacs-mozc emacs-mozc-bin emacs24 fcitx fcitx-frontend-qt5 fcitx-libs fcitx-mozc fontforge git libssl-dev screen ttf-vlgothic ubuntu-defaults-ja vim xclip zsh

ファイルに出力したい場合などは以下のように。

% ./make_apt_install_list.pl > list.txt

以上。

ad

関連記事

Lubuntu の Emacs で C-M-p (backward-list) が効かない問題と対策

Emacs では、括弧閉じ")"にカーソルがある状態で、 C-M-p を押下すると対応する括弧開き

記事を読む

Ubuntu 13.10 を使いやすくする設定

前回 VirtualBox に Ubuntu 13.10 をインストールした。 Virtual

記事を読む

Lubuntu で「貼り付けを選択」のキーバインドを設定する方法

Lubuntu で fcitx という IME を使用している。 Ubuntu 13.10 から

記事を読む

Lubuntu 13.10 を VirtualBox にインストールした

最近の Ubuntu があまりにも重すぎるので、 Ubuntu 系で軽量のディストリビューション

記事を読む

Lubuntu のアプリケーション・ランチャーにコマンドを登録する

Lubuntu のアプリケーション・ランチャーはメニューにある アプリケーションしか登録で

記事を読む

no image

さくらインターネットのcron設定のコツ

さくらインターネットのcron設定ではまったのでメモ。 cron で Perl スクリプトを定期的

記事を読む

no image

Perl でホームディレクトリ以下すべてのシンボリックリンクを出力する

ふと、シンボリックリンクがどのくらいあるのか知りたくなったので。 #!/usr/bin/p

記事を読む

Ubuntu 13.10 (Saucy Salamander) のリリースは 10月25日

Ubuntu の次期バージョンである 13.10 (Saucy Salamander) のリリースは

記事を読む

Lubuntu 13.10 on VirtualBox を快適に使用するための設定

前回、Lubuntu 13.10 を VirtualBox にインストールした。 Lubunt

記事を読む

モダンな Perl の書き方を知る上で参考になるサイト

Perl が登場したのは1987年。 現在も使われている言語としては歴史がある部類であろう。 ち

記事を読む

ad

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ad

ドライヤー モンスター の風量がすさまじくてすばらしい

コイズミのドライヤー、モンスターを買ったが素晴らしい。 コイズミ

電子書籍の電子化(自炊)を始めるにあたって必要なものと、そのお得な買い方

電子書籍の電子化(自炊)を始めることを決意し、必要なものを一通り揃えた

防水Bluetoothスピーカーをいろいろ使ってみたのでレビューする

長年使ってきたLogitecの防水Bluetoothスピーカーが、落と

象印の加湿器のメンテナンス用にクエン酸1kgを買ったら捗った

象印のスチーム式加湿器EE-RM50-WAが非常に良い。 象印

伊藤農園の100%ピュアジュースがおいしすぎる

伊藤農園の100%ピュアジュースシリーズは本当においしい。 伊藤

→もっと見る

PAGE TOP ↑