我正在遵循 mariadb 文档,其中启动步骤已经完成,但是当我使用此命令时。
sudo curl -o /etc/apt/trusted.gpg.d/mariadb_release_signing_key.asc
'https://mariadb.org/mariadb_release_signing_key.asc'
此命令给出了一个错误:
sudo: curl: command not found
我尝试使用这些命令在我的 Ubuntu 上安装 curl。
sudo apt update
sudo apt install curl
我不确定它现在是否已安装,但当我再次尝试使用上述命令时,它给出了同样的错误。
为了更好地理解,我还添加了一些附加命令的屏幕截图。
答案1
安装 curl 时出现问题,看来您的系统仍然缺少它。
为了检查 curl 包是否已安装,您可以尝试运行以下命令:
apt-cache policy curl
应该打印如下内容:
curl:
Installed: 7.81.0-1ubuntu1.10
Candidate: 7.81.0-1ubuntu1.10
Version table:
*** 7.81.0-1ubuntu1.10 500
500 http://it.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages
100 /var/lib/dpkg/status
7.81.0-1 500
500 http://it.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
更新
如果软件包安装正确,此命令应该显示二进制文件的位置
$ dpkg -L curl | grep bin
/usr/bin
/usr/bin/curl
检查$PATH多变的:
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
如果不存在,你可以暂时添加/usr/bin添加到您的 $PATH 变量中:
$ export PATH=/usr/bin:$PATH
要使此更改永久生效,您可以编辑〜/ .profile(用户范围)或/etc/环境(系统范围)
如果一切都失败了,您可以随时使用完整路径手动运行二进制文件:
$ /usr/bin/curl
curl: try 'curl --help' or 'curl --manual' for more information
答案2
该curl
软件包似乎已损坏,因此请使用以下命令重新安装该软件包
$ sudo apt install --yes --reinstall curl
这将修复所有丢失的二进制文件。
但是,软件包二进制文件丢失并非“正常”行为。一定有人或某物故意删除了这些文件。
答案3
我已经尝试了所有这些命令来安装 curl。
sudo apt install curl
我也尝试了用于重新安装 curl 的命令。
sudo apt install --yes --reinstall curl
执行该命令后,我使用以下命令检查,结果显示 curl 已安装。
apt-cache policy curl
它显示了以下响应,表明 curl 现已安装。
curl:
Installed: 7.81.0-1ubuntu1.10
Candidate: 7.81.0-1ubuntu1.10
Version table:
7.81.0-1ubuntu1.10 500
500 http://pk.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages
100 /var/lib/dpkg/status
7.81.0-1 500
500 http://pk.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
但是问题并没有因此得到解决,但是当我将我的 ubuntu 更新到 22.04 时,这个问题就得到了解决,并且以下命令运行良好。
sudo curl -o /etc/apt/trusted.gpg.d/mariadb_release_signing_key.asc
'https://mariadb.org/mariadb_release_signing_key.asc'
因此,我在 curl 中使用的命令存在问题,这就是它出现错误的原因,现在已经解决了。