web-dev-qa-db-ja.com

ユーザーがインストールしたアプリケーション(パッケージではない)を一覧表示する方法は?

パッケージではないおよびすべてのアプリケーションではありません。任意のソース(Software Center、手動で追加されたPPAなど)から自分でインストールしたアプリケーションユーザーのみ。

上記が不可能な場合-インストールされているすべてのアプリケーションのリスト、または少なくともスクリーンショットを撮れるようにアプリケーションをリストするGUI。

私は同様の質問をたくさん読みましたが、回答を投稿する人は通常、OPの質問のメリットに近づきさえしません。私の質問には「インストールされたユーザー」が含まれていることに注意してください。

回答:Ubuntu Linuxでは現在不可能です。 (ただし、最も近いものとしてtijybbaの答えを選択します)

28
Bucic

以下のスクリーンショットに示すように、実際にUbuntu Software Centreを使用できます。

Ubuntu Software Center: "Installed"-menu

また、Synapticの左下のリスト選択でも確認できます。

cd /etc/apt/sources.list.d/ && cat *.listにより、システム内のすべてのリポジトリのリストを取得できます。

Y PPAマネージャー を使用して、リポジトリをバックアップおよび更新することもできます。


第二の方法

[この方法はすべてのパッケージをインストールする必要があるため、新しくインストールしたOSには既に90%のパッケージがあると思われる場合、現在のパッケージを無視して手動で追加した新しいパッケージをインストールします。手動でインストールしたアプリケーションのみになります]

here からのこのメソッド。

Sudo dpkg --get-selections > installed-applications.txt

ホームフォルダーのtxtファイルにインストール済みアプリケーションのリストが生成されます。

このファイルを使用して同じアプリケーションをインストールする必要があります(ただし、この前に、すべてのサードパーティリポジトリも追加してください。 )

Sudo dpkg --set-selections < installed-applications.txt
Sudo apt-get -y update
Sudo apt-get dselect-upgrade

これはGuiの方法でも可能です

Sudo add-apt-repository ppa:webupd8team/mintbackup && Sudo apt-get update
Sudo apt-get install mintbackup

enter image description here

画像はそれ自体をほとんど語り、選択内容をバックアップしてから、新規インストールで復元します。

29
atenz

apt-mark showmanualは、「手動でインストールされた」パッケージのリストを提供します。これには、インストーラーによってインストールされるパッケージが含まれますが、そのほとんどがパッケージです。しかし、インストール後にこれを実行し、後で出力を再度比較すると、自動的にインストールされた依存関係を除いて、ユーザーが具体的に要求したパッケージのリストが表示されます。

例えば:

$ # Save the current list of manually installed packages
$ apt-mark showmanual | sort > original-package-list

# ...time passes...

$ # Compare the old list with the current list
$ # (this will output a list of packages that have been installed by the user since the last command)
$ apt-mark showmanual | sort | comm -13 - original-package-list

Software Centerおよび手動で追加されたPPAに関する限り、アプリケーションareパッケージに注意してください。具体的に要求されたパッケージと依存関係を満たすために持ち込まれたパッケージを区別することは、あなたができる最善のことだと思います。

または、インストールされているすべてのパッケージのリストを表示するには、dpkg-query -W -f'${PackageSpec}\n'を実行します。

10
Robie Basak

ubuntuでパッケージをインストールできるのはrootのみです。これを実行できるユーザーは1人だけで、sudoersは同等の権限を持つユーザーのみです。

ただし、ログを見て多くの情報を取得できますが、

/var/log/apt/の下のaptログ/var/log/の下のdpkgログ

コマンドを実行するだけでインストール済みパッケージのリストを取得できます:

dpkg -l | grep ii
2
user827992

実際、あなたの質問ごとに、この次のコマンドはあなたが必要とすることを行うことがわかりますdpkg -l | grep ii。これは、インストールされているすべてのパッケージをリストしました。現在、ユーザーAまたはユーザーBとは言いませんが、これはSudoの制限ではなく、ソフトウェアセンターのログの制限です。 Sudoを使用しても、Sudoを呼び出したユーザーは渡されるため、Sudoを呼び出してコマンドを実行するアプリログを保持できます。もちろん、Sudoの一部は、パスワードを知っている場合は[Sudoにアクセスできる]ユーザーとしてログインする機能であるため、これをかなり簡単に回避することができます。

ユーザーまたはシステムを危険にさらす可能性があるという点でユーザーがインストールしたものが心配な場合は、Sudoアクセスを許可した理由と、パッケージをインストールする機能を確認することをお勧めしますが、それは単なる補足です。

システムをインストールしてからインストールしたパッケージをクリーンアップするか、セットアップを新しいマシンにミラーリングできるようになっていると感じています。ここでの回答は、バックアップ/復元をすでにカバーしているため、スキップします。

パッケージのインストールを呼び出したユーザーを見つける簡単な直接的な方法はないため、上記と別のユーザーの両方のコマンドを使用して、インストールされているすべてのパッケージを一覧表示し、ブラウザーウィンドウをGoogleに開いて実行することをお勧めしますGoogleは、システムの動作を維持するために必要なパッケージとそうでないパッケージを検索しました。

ここまでスキップして、綿毛のほとんどをスキップし、より直接答えに到達します...

また、sudoersログを確認して、誰が何をインストールしたのかを確認することもできます。

May 15 11:26:30 <COMPUTERNAME> Sudo:   <user who called Sudo> : TTY=unknown ; PWD=/home/pariah (pwd file or auth method used to verify user) ; USER=root (User they were running as) ; COMMAND=/usr/bin/thunar (the command they ran)

このため、このユーザーがSudoを呼び出した日時(実際にはこの場合はgksuが使用された)、Sudoが許可したユーザー、および実行したコマンドの大きなユーザーに通知します!

Sudoログ[/var/log/auth.log]内でapt-getまたは同様のものをgrepした場合、古いログには.0 .1などが末尾に追加されます。

コマンドライン自体に必要なユーザーをインストールすることができます。彼らがソフトウェアセンターを使用した場合、関連する端末コマンドがここで認証行を取得するかどうかはわかりませんが、次の場所にあるソフトウェアセンターのログを使用できます:

/var/log/apt/history.logおよび古いログは.gz圧縮アーカイブにあります

現在、ソフトウェアセンターのログには、インストールを認証したユーザーがそのログ内で見た限りでは表示されませんが、ソフトウェアセンターが実行するすべての追加、変更、または削除がリストされます。繰り返しますが、このログには時刻と日付のスタンプもあるため、基本システムのインストールが最も古いログに移動した後、または基本インストールが完了した時刻と日付を覚えていて、あなたが行ってもいい場合は、簡単に確認できます。

言及されているこれらのログファイルは両方ともプレーンテキストであり、Ubuntuフレーバーがデフォルトで表示および印刷するために使用するテキストエディターであれば、gedit、mousepad、leafpadを使用できます。

1
Pariah