curl: (48) An unknown option was passed in to libcurl
忘了什么时候发现有问题的
这个问题一致存在,解决了好几次都没有解决。最近,实在忍不住了,作为网安人,居然连个命令都用不了,所以面子硬逼着自己解决。
网上博客
网上博客有很多,但是我都试过,对我没有什么用。但是有个思路就是curl版本与libcurl版本如果不对应就会报这个错误。所以我是按照这个思路出发的。
查看自己安装的curl
locate curl //定位自己的含有curl目录的文件夹
whereis curl //定位当前curl命令是从何处产生的
//我的curl 产生来源
curl: /usr/local/bin/curl /usr/include/curl(c库)
//所以我是bin下的bash产生
删除curl,并安装curl,查看curl版本
apt remove curl
apt install curl
curl -V
//curl 7.62.0 (aarch64-unknown-linux-gnu) libcurl/7.58.0 **省略后面的内容
可以看见我的curl 和curl版本不一致。但是我安装的是7.58.0啊????不懂
尝试安装7.58.0
1.手动安装github下7.58.0的安装包 结果 华为云有些库没有???
buildconf: libtoolize not found.
You need GNU libtoolize 1.4.2 or newer installed.
root@louis:/home/curl-7.58.0# apt install libtoolize
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libtoolize
2.自动安装嘛,也不行
root@louis:~# apt install curl-7.58.0
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package curl-7.58.0
E: Couldn't find any package by glob 'curl-7.58.0'
E: Couldn't find any package by regex 'curl-7.58.0'
root@louis:~# apt install curl-7.58.
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package curl-7.58.
E: Couldn't find any package by glob 'curl-7.58.'
E: Couldn't find any package by regex 'curl-7.58.'
root@louis:~# apt install curl-7
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package curl-7
思考:linux执行curl命令调用的curl文件夹路径
我想着能不能改一下路径 让它不调用7.68的版本,结果水平不够,搜索了半天不知道怎么改。
那我就把现在的执行路径删除。`
之前 whereis curl 命令显示了一个目录,那我删除它。看看会这么样??
curl: /usr/local/bin/curl
进入/usr/local/bin 发现有两个与curl有关的文件夹 删掉他们
rm -rf curl
rm -rf curl-config//记不清楚是不是这个了
然后执行,报错没有这个目录,说明linux的bash是调用的这个目录。
curl -V
root@louis:/usr/local/bin# curl -V
-bash: /usr/local/bin/curl: No such file or directory
下一步怎么办??怎么添加文件夹呢
下意识百度?
出现这个错误-bash: 路径xx: No such file or directory除了cd能用外,所有linux命令都不能用,一般导致问题原因是etc/profile配置文件出错导致
一、解决方法:
打开终端输入以下命令让所有命令启作用
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
下面简单介绍这几个目录命令作用,原文链接这里
/bin
是系统的一些指令。bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。
/sbin
一般是指超级用户指令。主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。
/usr/bin
是你在后期安装的一些软件的运行脚本。主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等
/usr/sbin
放置一些用户安装的系统管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。
启用之后
可以看见是由/usr/bin下的curl执行,而不是/usr/local/curl。
说明之前apt install curl 是把curl装到/usr/bin下的。
root@louis:/usr/local/bin# curl -V
curl 7.58.0 (aarch64-unknown-linux-gnu) libcurl/7.58.0
root@louis:/usr/local/bin# whereis curl
curl:
/usr/bin/curl
/usr/include/curl
/usr/share/man/man1/curl.1.gz
最后
菜鸟一枚,若有地方描述不正确,还请指正,多多包含。