xdg-open установлен, но также не установлен

Вопрос или проблема

$ xdg-open
Программа 'xdg-open' в настоящее время не установлена. Вы можете установить её, набрав:
sudo apt-get install xdg-utils

$ sudo apt-get install xdg-utils
Чтение списков пакетов... Готово
Формирование дерева зависимостей       
Чтение информации о состоянии... Готово
xdg-utils уже является самой новой версией.
0 обновлено, 0 установлено новыми, 0 для удаления и 89 не обновлено.

$ whereis xdg-open
xdg-open: /usr/bin/xdg-open /usr/bin/X11/xdg-open /usr/share/man/man1/xdg-open.1.gz

$ which xdg-open

$ xdg-open
Программа 'xdg-open' в настоящее время не установлена. Вы можете установить её, набрав:
sudo apt-get install xdg-utils

Нет, я не имел в виду “рекурсию”.

Я на Linux Mint 15 MATE, но вместо MATE я использую оконный менеджер i3.

Редактировать, прислушавшись к совету @slm

$ type -a xdg-open
type: xdg-open не найден

Но он находится в /usr/bin/xdg-open. Я проверил.

$ dpkg -S /usr/bin/xdg-open
xdg-utils: /usr/bin/xdg-open

Следующий был ещё более интересным.

$ dpkg -S xdg-open
git-annex: /usr/share/doc/git-annex/html/bugs/Fix_for_opening_a_browser_on_a_mac___40__or_xdg-open_on_linux__47__bsd__63____41__.html
xdg-utils: /usr/bin/xdg-open
xdg-utils: /usr/share/man/man1/xdg-open.1.gz

Исправление ошибки — это всего лишь архив почты патча для проблемы с OSX. В любом случае, я полагаю, я мог бы попробовать использовать полный путь:

$ /usr/bin/xdg-open
/usr/bin/xdg-open: Нет такого файла или каталога

Это похоже на то, что ваша база данных пакетов повреждена. Сначала я бы определил все версии xdg-open, которые у вас есть в системе. type всегда следует использовать для выполнения этой задачи, никогда не полагайтесь на which или whereis.

Пример

Определите все xdg-open.

$ type -a xdg-open
xdg-open находится в /usr/bin/xdg-open

Выясните, в каких пакетах они находятся.

$ dpkg -S /usr/bin/xdg-open
xdg-utils: /usr/bin/xdg-open

Вы захотите либо повторить вышеупомянутый dpkg -S .. для каждого совпадения, возвращаемого type -a или использовать вместо этого поиск dpkg -S ...

$ dpkg -S xdg-open
xdg-utils: /usr/bin/xdg-open
xdg-utils: /usr/share/man/man1/xdg-open.1.gz

Я бы делал каждую операцию по одной.

Переустановка xdg-utils

Если вы хотите обновить установку этого пакета, сделайте так:

$ sudo apt-get install --reinstall xdg-utils

Благодаря совету @slm, я нашёл это.

chromium-browser браузером по умолчанию в Linux Mint. Совет был таков: удалите usr/bin/xdg-open, а затем создайте символическую ссылку на chromium-browser.

Это действительно сделало Chromium браузером по умолчанию. Это сделало Chromium браузером по умолчанию для множества вещей.

С тех пор, конечно, я установил официальный Chrome для Linux от Google. Он автоматически работал как браузер по умолчанию, и я забыл об этом обходном решении.

К сожалению, это трудно исправить. Вы можете удалить символическую ссылку, но как восстановить оригинал? sudo apt-get install xdg-utils не беспокойтесь, потому что считает, что он уже обновлён. sudo apt-get remove xdg-utils в настоящее время занят удалением практически всей моей системы.

Ответ или решение

Проблема с xdg-open на Linux Mint: Решение и Восстановление

Введение

Если вы столкнулись с проблемой, когда команда xdg-open подозрительно сообщает "The program ‘xdg-open’ is currently not installed", несмотря на то что утилита установлена как часть пакета xdg-utils, это может быть связано с некорректной конфигурацией вашей системы. Давайте подробно рассмотрим, как можно решить данную проблему.

Анализ Проблемы

  1. Проверка Установки: Вы уже проверили, что пакет xdg-utils установлен, и система сообщает о наличии самой утилиты:

    $ dpkg -S /usr/bin/xdg-open
    xdg-utils: /usr/bin/xdg-open

    Тем не менее, команда xdg-open не выполняется. Это приводит к предположению, что файл /usr/bin/xdg-open может быть поврежден или отсутствует необходимые права доступа.

  2. Символическая Ссылка или Удаленный Файл: Из вашего описания видно, что ранее вы создавали символическую ссылку на chromium-browser, заменив оригинальный файл xdg-open. Чтобы выяснить, является ли сам файл символической ссылкой, выполните:

    ls -l /usr/bin/xdg-open

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

  3. Восстановление xdg-open: Так как sudo apt-get install xdg-utils не переустановит xdg-utils, если система считает его обновленным, вам необходимо вручную удалить символическую ссылку:

    sudo rm /usr/bin/xdg-open

    После этого восстановите правильный файл. Вы можете извлечь исполняемый файл из пакета xdg-utils с помощью команды:

    sudo apt-get install --reinstall xdg-utils
  4. Проверка Переменных Среды: Убедитесь, что переменные окружения и пути к исполняемым файлам настроены корректно. Это можно сделать с помощью:

    echo $PATH

    Убедитесь, что /usr/bin входит в список.

Дополнительные Шаги и Проверки

  • Права Доступа: Убедитесь, что у файла xdg-open есть необходимые права:

    chmod +x /usr/bin/xdg-open
  • Тестирование: После выполнения всех шагов протестируйте выполнение команды:

    xdg-open https://www.example.com
  • Логи: Если после выполнения вышеуказанных шагов проблема сохраняется, проверьте системные логи на наличие ошибок, связанных с запуском программ:

    dmesg | grep xdg-open

Заключение

При возникновении подобной проблемы с утилитой xdg-open на Linux Mint важно проследить за целостностью исполняемых файлов и конфигурацией вашего окружения. Следуйте приведенным выше шагам, чтобы вернуть функциональность данной утилиты. Если проблема не решается, возможно, стоит рассмотреть вариант более глубокого анализа системы или консультации с опытными пользователями на форумах.

Оцените материал
Добавить комментарий

Капча загружается...