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 でスクリーンショットを撮る

Lubuntu は PrintScreen キーで自動的にホームディレクトリに スクリーン

記事を読む

Lubuntu で Win + カーソルキーでウィンドウ分割する

Lubuntu ではWindowsのように、 Win + ← などで ウィンドウを綺麗に画面サイ

記事を読む

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

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

記事を読む

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

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

記事を読む

no image

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

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

記事を読む

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

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

記事を読む

VirtualBox に Ubuntu 13.10 Server を最小構成でインストールする

Windowsに開発環境を構築するのに疲れ、 さらに近年の Ubuntu(Unity...

記事を読む

Ruby の勉強を開始した

学生時代からずっと、スクリプト言語は Perl を使い続けてきた。 ふと、Ruby On Ra

記事を読む

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

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

記事を読む

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

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

記事を読む

ad

Message

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

ad

no image
hulu での英語学習効果を比較的に高める Chrome 拡張

最近、英語学習も兼ねて、ゲーム・オブ・スローンズ(Game of Th

no image
iOS11にしたらBluetoothイヤホンの最大音量が小さくなった件とその対応

iPhone7 Plusを、今日から配信されたiOS11にさっそくアッ

Bose QuietControl 30 がすばらしすぎる

Bose のワイヤレスノイズキャンセリングイヤホン QuietCont

no image
mineoからLINEモバイルにMNPした話 その2

前回の続き。 mineoからLINEモバイルにMNPした話 その

mineoからLINEモバイルにMNPした話 その1

mineo エントリーパッケージ au/ドコモ対応SIMカード データ

→もっと見る

PAGE TOP ↑