您认为导致此错误的原因有哪些?
The program 'wget' is currently not installed.
You can install it by typing:sudo apt-get install wget
如果我输入,sudo apt-get install wget
输出如下:
Reading package lists... Done
Building dependency tree
Reading state information... Done
wget is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
我检查了 wget 是否已安装,wget --version
但什么都没有出现。我无法安装wget
。我有互联网连接。我正在使用Ubuntu 12.04.5 LTS 服务器。这是新安装的。我正尝试安装asterisk
此软件,但无法开始。任何信息都将非常有帮助。
答案1
您可以使用以下方法查看安装了哪些文件
dpkg -L wget
在我的系统上(YMMV),它显示这/usr/bin/wget
是已安装的文件之一。
我怀疑你的$PATH
设置不正确。请向我们展示
echo $PATH
/bin/ls -l /usr/bin/wget
并检查您的设置~/.bashrc
方式。PATH
答案2
运行 apt-get 时,检查您是否是 root 用户。然后,如果您是:尝试:
sudo apt-get update
sudo apt-get remove wget
然后安装 wget- 尝试
sudo apt-get upgrade
,然后再尝试所有这些事情。
答案3
sudo apt-get install --reinstall wget
将替换所有已删除的文件。
当bash
Ubuntu 中 shell 的默认命令未找到处理程序(即您尝试运行时显示的消息)wget
告诉您某个程序未安装,但它所说的软件包提供了它是安装,这通常意味着文件已被删除。在这种情况下,你可以关于安装该包,文件将被替换。
apt install
仅运行它告诉您运行的命令不会执行该操作,因为如果在您使用或 时默认重新安装已安装的软件包apt-get install
,那么用户将不断重新安装他们不想重新安装的东西。
要重新安装包,传递--reinstall
旗帜在你的情况下,对于wget
包:
sudo apt-get --install reinstall wget
该apt
命令也接受此语法,即,您可以在 Ubuntu 14.04 LTS 及更高版本中将该命令中的 替换apt-get
为,但该命令仍可正常工作。(即使在具有该命令的系统上,也apt
可以使用。)apt-get
apt
wget
分两个步骤删除然后重新安装的方法是不可取的,因为如果你wget
使用remove
或purge
操作删除,那么依靠上的软件包也将被删除。这些软件包不是随后安装时会自动重新安装wget
(尽管如果你明确安装他们,wget
如果包管理器中没有安装该包,则安装该包知道它不见了)。
有关如何调查此类问题以及其他可能原因的信息,请参阅下文。以下内容是次要的,在大多数情况下不需要。
如果你想先检查一下……
如上所述,文件丢失是导致问题的最常见原因,但也有其他原因可以通过重新安装软件包来解决。还解决——见下文——所以我建议继续这样做。然而,如果你觉得检查如果文件已被删除,那么您可以运行:
ls -l /usr/bin/wget
一般来说,如果你不知道什么文件应该通过提供命令,您可以运行dpkg -S wget
以查看直接提供的文件列表任何包裹wget
上有他们的名字,或者(如waltinator 建议)dkpg -L wget
列出wget
包直接提供的所有文件。不过我建议使用https://packages.ubuntu.com/查找它,因为界面很容易使用,即使你的系统的包管理器损坏或配置错误,它也会给你正确的答案。
也可以看看如何找到提供文件的包?
这是不是可能是由PATH
问题引起的。
还有其他可能的原因,但根据我的经验,它们不太常见。特别是,如果你的PATH
设置不正确,通常会导致不是导致命令未找到处理程序建议安装一个包:
ek@Kip:~$ nonexistent-command
nonexistent-command: command not found
ek@Kip:~$ curl
The program 'curl' is currently not installed. You can install it by typing:
sudo apt-get install curl
ek@Kip:~$ wget
wget: missing URL
Usage: wget [OPTION]... [URL]...
Try `wget --help' for more options.
ek@Kip:~$ PATH=
ek@Kip:~$ nonexistent-command
bash: nonexistent-command: No such file or directory
ek@Kip:~$ curl
bash: curl: No such file or directory
ek@Kip:~$ wget
bash: wget: No such file or directory
另一个可能的原因是替代系统使用的符号链接已被删除。
更合理的原因种类除了上述文件被删除之外,问题的另一个可能在于替代系统保持命令为符号链接到可执行文件,符号链接本身已被删除,但实际的可执行文件仍然存在。
在这种情况下,您不必重新安装该软件包——但重新安装通常仍然会修复它,因为它通常会通过重建符号链接并使其指向已安装的可执行文件将新安装的命令设置为默认命令。
此外,wget
在 Ubuntu 中不受替代系统管理因为在 Ubuntu 的存储库中只有一个实现wget
。因此,这不是此处问题中具体描述的情况的原因,尽管它偶尔会导致类似问题。