Как вывести список установленных пользователем приложений (не пакетов)?


28

Не пакеты и не все приложения. Просто пользователь устанавливает приложения самостоятельно из любого источника (Центр программного обеспечения, вручную добавлен PPA и т. Д.).

Если вышеупомянутое не возможно - список всех установленных приложений или по крайней мере GUI, который перечисляет приложения, чтобы я мог сделать скриншоты этого.

Я прочитал дюжину подобных вопросов, и люди, публикующие ответы, обычно даже не приближаются к достоинствам ОП-вопроса. Обратите внимание, что мой вопрос включает в себя «пользователь установил».

Ответ: В настоящее время это невозможно в Ubuntu Linux. (выбирая ответ тиджибба как самый близкий)

Ответы:


30

Вы можете использовать Ubuntu Software Center , как показано на скриншоте здесь:

Ubuntu Software Center: "Установлено" -меню

Также вы можете увидеть это в нижнем левом списке Synaptic.

К cd /etc/apt/sources.list.d/ && cat *.listвам получите список всех хранилищ в вашей системе.

Вы также можете Y PPA менеджер для резервного копирования и обновления ваших репозиториев.


Второй метод

[Поскольку этот метод включает в себя установку всех пакетов, но если мы думаем, что во вновь установленной ОС уже будут эти 90% пакетов, то он проигнорирует существующие и установит новые, добавленные вручную, которые будут только вашими установленными вручную приложениями]

Этот метод отсюда .

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

введите описание изображения здесь

Я думаю, образ почти говорит сам, сделайте резервную копию вашего выбора, а затем в новой установке восстановить его.


Невозможно добавить PPA: 'ppa: ~ webupd8team / ubuntu / mintbackup'. Команда с именем '~ webupd8team' не имеет PPA с именем 'ubuntu / mintbackup'
alhelal

dpkg: warning: пакет не находится ни в статусе, ни в базе данных в строке 1574: wireshark и т. д. для всех приложений.
Алхелал

11

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, добавленными вручную. Я считаю, что лучшее, что вы можете сделать, - это сделать различие между специально запрошенными пакетами и пакетами, внесенными для удовлетворения зависимостей.

Или просто посмотреть список всех установленных пакетов, запустите dpkg-query -W -f'${PackageSpec}\n'.


2

только root может устанавливать пакеты под Ubuntu, пользователь, который может сделать это, только 1, sudoers - просто пользователь с эквивалентными правами.

Однако вы можете получить много информации, просматривая журналы, вы можете посмотреть на

лог apt под /var/log/apt/ логом dpkg под/var/log/

и вы можете получить список установленных пакетов с помощью команды:

dpkg -l | grep ii

Вы можете перефразировать мой вопрос в любом случае, если не останется первоначальный смысл. Если это называется «установленные приложения sudoers», то пусть так и будет :) Естественно, я мог бы перефразировать мой вопрос в «Как составить список приложений, установленных после установки системы». «а вы можете получить список установленных пакетов» - для чего?
Bucic

+1 для / var / log / apt. Если вы установили все с помощью apt-get, поиск «Командная строка:» в этом журнале даст вам хороший список вещей, которые вы установили вручную.
drevicko

1

На самом деле, на ваш вопрос я вижу, что эта следующая команда делает то, что вам нужно 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 были предоставлены права доступа, как и самой большой команде, которую он выполнил!

Теперь, если вы должны были выполнить grep для apt-get или аналогичного в журнале sudo [/var/log/auth.log], и к более старым файлам будет добавлено .0 .1 и т. Д.

Вы можете собрать воедино то, что устанавливает пользователь, вызванный в самой командной строке. Если бы они использовали software-center, я не уверен, что соответствующая команда терминала получит здесь строку авторизации, но вы можете использовать журналы программного центра, найденные по адресу:

/var/log/apt/history.log и более старые журналы находятся в сжатых архивах .gz

Теперь журнал центра программного обеспечения не предоставляет пользователю, который установил установки, насколько я когда-либо видел в этом журнале, но в нем перечислены КАЖДЫЕ действия по добавлению, изменению или удалению центра программного обеспечения. Опять же, в этом журнале также есть метки времени и даты, так что достаточно легко найти квитанции после установки базовой системы, перейти к самому старому журналу, перейти к началу или, если вы помните время и дату завершения базовой установки, и вы готовы к работе.

Оба упомянутых файла журнала представлены в виде открытого текста, и вы можете использовать любой gedit, mousepad, leafpad, независимо от того, какой текстовый редактор использует ваш вариант Ubuntu, так как он по умолчанию позволяет просматривать и распечатывать их.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.