Обходной путь
. /etc/profile.d/vte.sh
не работал для меня. Тем не менее, что было сделано: я, наконец, обнаружил, что на вкладке «Настройки» в профиле «Настройки» (щелкните правой кнопкой мыши в терминале-> Профили), сняв флажок «Запустить пользовательскую команду вместо моей оболочки», если она отмечена, также можно решить этот выпуск.
aptitude search '~o'
Aptitude имеет очень мощный поиск. К сожалению, синтаксис немного громоздкий, и вам нужно вырыть man-страницу, чтобы найти документацию, но это того стоит.
apt-show-versions также может быть полезным:
apt-show-versions | grep 'No available version'
Чтобы получить список приложений, которые не находятся в зарегистрированном репозитории или PPA, выполните следующие действия:
sudo apt-get install apt-show-versions
apt-show-versions | grep 'No available version'
Это должно выводить текст следующим образом:
app1 1.0.0.14 installed: No available version in archive
app23 0.3.6 installed: No available version in archive
app332 7.0.9377 installed: No available version in archive
Для меня это работало и показывало три приложения, которые я установил с помощью пакетов DEB, и не были доступны в Repo или PPA.
Помните, что невозможно проверить все программы, только те, которые прошли через dpkg , Например, некоторые приложения устанавливаются путем простого извлечения их в правильные папки или другие используют автономный файл или сценарий установщика. Таким образом, лучший способ для вас - сохранить список приложений, которые вы установили, любым методом, отличным от APT.
Если у вас установлено использование aptitude,
aptitude search '?obsolete'
или его короткая форма
aptitude search '~o'
Здесь это примерный вывод
i A gcc-4.7-base - GCC, the GNU Compiler Collection (base package)
id libdb4.7 - Berkeley v4.7 Database Libraries [runtime]
i libudev0 - libudev shared library
aptitude каждой строки указывает текущее состояние пакета. Наиболее распространенными являются:
p, что означает, что в системе нет следов пакета, c, что означает, что пакет был удален, но его файлы конфигурации остаются в системе, i, что означает, что пакет и v, что означает, что пакет виртуальный.Второй символ указывает сохраненное действие, которое должно выполняться на пакете, если оно есть, в противном случае отображается пустое пространство. Наиболее распространенными действиями являются:
p, что означает, что в системе нет следа пакета d, что означает, что пакет будет удален, а c, это означает, что пакет был удален, но его файлы конфигурации остались в системе,Второй символ - это A, пакет был автоматически установлен.
Полный список возможных флагов состояния и действия см. в разделе «Доступ к информации о пакете» в справочном руководстве aptitude.
Может быть более чистый способ, но с верхней части головы вы можете сделать
dpkg -l | cut -f 3 -d ' ' > installed
xargs -n 1 --replace=X apt-cache search ^X$ < installed | cut -f 1 -d ' ' > available
diff installed available
Очистить первые несколько строк файла installed: у него будут заголовки. [!d1 ]
Бонус, если кто-то может исправить подсветку синтаксиса ...
Как упоминалось, поиск apt-get не является хорошим методом проверки доступности пакета. Дополнительно я добавил все к одной строке:
for i in `dpkg -l | grep '^i' | awk '{ print $2 }'`; do apt-cache show $i > /dev/null || echo $i; done