Где я могу посмотреть, как была установлена ​​программа?

Где я могу посмотреть, как была установлена ​​программа?

Есть ли способ узнать, было ли установлено какое-либо приложение через Snap, из PPA, через загруженный deb-файл или из стандартного репозитория?

На данный момент на моем ноутбуке Focal 20.04 установлен Zoom. Я пытаюсь понять, как я изначально его установил, но эта проблема возникает довольно часто. Либо это фирменное приложение (например, Slack или Dropbox) и я хочу его обновить, либо приложение оповещает меня о наличии более новой версии (Keepass) и я хочу еще раз проверить, что я установил из репозитория, и могу просто подождать, пока репозиторий обновится.

Если бы мне пришлось угадывать, я бы сказал, что, скорее всего, я установил Zoom из загруженного .deb, но я не уверен, как это проверить. Я не думаю, что я установил Slack из .deb.

Я попытался следовать некоторым предложениям наКак узнать, из какого репозитория получен пакет?apt policyно результаты неоднозначны. Например , для Slack нет результата:

amanda@rajje:~$ apt policy slack
slack:
  Installed: (none)
  Candidate: 1:0.15.2-9
  Version table:
     1:0.15.2-9 500
        500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
        500 http://us.archive.ubuntu.com/ubuntu focal/universe i386 Packages

Вероятно, потому что я установил его из Ubuntu Software, так что это просто: Скриншот входа в Slack

Если я пробую apt policyприложение, с которым я точно не делал никаких манипуляций, я вижу список репозиториев. Могу ли я предположить, что это означает, что я установил из репозитория?

amanda@rajje:~$ apt policy emacs
emacs:
  Installed: 1:26.3+1-1ubuntu2
  Candidate: 1:26.3+1-1ubuntu2
  Version table:
 *** 1:26.3+1-1ubuntu2 500
        500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
        500 http://us.archive.ubuntu.com/ubuntu focal/universe i386 Packages
        100 /var/lib/dpkg/status

А если репозиторий не отображается, значит ли это, что я установил его из загруженного пакета?

amanda@rajje:~$ apt policy zoom
zoom:
  Installed: 5.0.403652.0509
  Candidate: 5.0.403652.0509
  Version table:
 *** 5.0.403652.0509 100
        100 /var/lib/dpkg/status

решение1

Начните с which zoomили which zoom-client. Это вернет путь к исполняемому файлу. (Подсказка: tabзавершение — ваш друг)

Все, что начинается с , /snapбыло установлено Snap (или Центром приложений Ubuntu), поэтому вы можете узнать больше, открыв Центр приложений или выполнив команду , snap list | grep -i zoomчтобы получить полное/правильное имя Snap.

Если он начинается с , /usr/binто, вероятно, он был установлен с помощью aptили Synaptic. В этом случае dpkg -l | grep -i zoomили apt policy zoom*расскажет вам больше. Посмотрите на фильтр «Установлено (локально или устаревшие)» в Synaptic, чтобы увидеть, aptбыло ли что-то установлено локально или через репозиторий.

Вы также можете проверить:

  • Flatpak - проверьте сflatpak list | grep -i zoom
  • Убунту Сделать- проверьте с помощью umake --list-installed(например, IDE)

решение2

Установите Synaptic Package Manager (вы можете установить его из Ubuntu Software или из командной строки с помощью sudo apt install synaptic). Это отличный инструмент для управления .debпакетами. На главном экране он показывает вам пакеты, разделенные на группы, как вы можете видеть на снимке экрана ниже. Посмотрите на группу под названием «Установленные (локальные или устаревшие)» — это пакеты, которые были установлены из вручную загруженных файлов, а не из репозиториев (некоторые очень важные системные пакеты, такие как libc, также включены туда). На моем снимке экрана вы можете увидеть zoomсреди этих пакетов.

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

BTW. В вашем примере Slack программа установлена ​​как snap, а не как .debпакет, что можно распознать по наличию "Channel" в начале данных на вашем снимке экрана. Пакеты Snap всегда имеют канал (обычно latest/stable), а .debпакеты - нет. Так что ни aptSynaptic, ни он не будут знать ничего об этом пакете (фактически, в вашем примере apt policyпоказывается информация оне установлен slackпакет доступен для установки .debиз репозиториев).

решение3

Прошло много времени с тех пор, как был задан этот вопрос, но я быстро создал скрипт (сегодня утром) для одновременного поиска приложений в репозиториях и Snap, а также для запроса установленного приложения с его исходным кодом.

Если кому-то это будет полезно, вот git-репозиторий:

https://github.com/rabinnh/uni-pkg-util/tree/main

Связанный контент