xdg-open 已安装但也未安装

nac*_*dus 10 linux which xdg-open

$ xdg-open
The program 'xdg-open' is currently not installed. You can install it by typing:
sudo apt-get install xdg-utils

$ sudo apt-get install xdg-utils
Reading package lists... Done
Building dependency tree       
Reading state information... Done
xdg-utils is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 89 not upgraded.

$ 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
The program 'xdg-open' is currently not installed. You can install it by typing:
sudo apt-get install xdg-utils
Run Code Online (Sandbox Code Playgroud)

不,我不是说“递归”。

我使用的是 Linux Mint 15 MATE,但我使用的是 i3 窗口管理器而不是 MATE。

编辑接受@slm 的建议

$ type -a xdg-open
type: xdg-open not found
Run Code Online (Sandbox Code Playgroud)

但它在 /usr/bin/xdg-open 中。我检查了。

$ dpkg -S /usr/bin/xdg-open
xdg-utils: /usr/bin/xdg-open
Run Code Online (Sandbox Code Playgroud)

下一个更有趣。

$ 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
Run Code Online (Sandbox Code Playgroud)

错误修复只是 OSX 问题补丁的邮件存档。无论如何,我想我可以尝试使用完整路径:

$ /usr/bin/xdg-open
/usr/bin/xdg-open: No such file or directory
Run Code Online (Sandbox Code Playgroud)

slm*_*slm 8

这听起来像是你的包数据库搞砸了。首先,我会确定xdg-open您系统上的所有版本。该type应始终用来做这个任务,从来不靠whichwhereis

例子

识别所有xdg-open的。

$ type -a xdg-open
xdg-open is /usr/bin/xdg-open
Run Code Online (Sandbox Code Playgroud)

找出它们属于哪些软件包。

$ dpkg -S /usr/bin/xdg-open
xdg-utils: /usr/bin/xdg-open
Run Code Online (Sandbox Code Playgroud)

您需要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
Run Code Online (Sandbox Code Playgroud)

我会做一个,一次一个。

重新安装 xdg-utils

如果您想刷新此软件包的安装,请执行以下操作:

$ sudo apt-get --reinstall xdg-utils
Run Code Online (Sandbox Code Playgroud)