关于ubuntu相关的问题(1)

问题1:git clone error:gnutls_handshake() failed

问题描述:gnutls_handshake() failed: The TLS connection was non-properly terminated.
解决办法:
需要使用libcurl4-openssl-dev替换gnutls对git进行编译

sudo apt-get install build-essential fakeroot dpkg-dev
mkdir ~/git-openssl
cd ~/git-openssl
sudo apt-get source git
sudo apt-get build-dep git

如果出现找不到源代码的报错,使用命令sudo vim /etc/apt/sources.list,打开文件并取消带deb_src那一行的注释,保存后运行sudo apt update,然后再执行上面最后一条命令
然后运行:

sudo apt-get install libcurl4-openssl-dev
ls#查看版本
sudo dpkg-source -x git_2.7.4-0ubuntu1.7.dsc#版本可能不同
cd git_2.7.4 #实际版本可能不同

然后编辑文件debian/control,

sudo vim debian/control

vim模式下将全部的libcurl4-gnutls-dev改为libcurl4-openssl-dev,

:1,$s/libcurl4-gnutls-dev/libcurl4-openssl-dev/g

命令解释:在vim的insert模式下,将第1行到结尾($表示结尾)的所有字符libcurl4-gnutls-dev替换为libcurl4-openssl-dev,s表示替换switch,g表示全局global
然后运行sudo dpkg-buildpackage -rfakeroot -b
如果test失败,sudo vi debian/rules删去TEST=test,然后重新运行上述命令。
最后:

sudo dpkg -i ../git_2.17.0-1_amd64.deb
cd ..
ls #查看deb文件名
sudo dpkg -i ./git_2.7.4-0ubuntu1.7_amd64.deb #版本可能不同

问题2 Permission denied

提示哪个文件或文件夹Permission denied,就修改权限
chmod -R 777 文件名或者文件夹名

问题3 error=2 no such file or directory

可是发现目录下有这个文件,于是手动执行这个文件报错
shell脚本执行报错:/bin/bash^M: bad interpreter: No such file or directory
原因:shell脚本格式必须是unix才行行尾则以\n来标识,windows是doc类型的每行结尾以\r\n来标识
查看文件格式:

1.cat -A filename,如果输出结果中行末尾是^M$,则是dos格式,如果行末尾只是$,则是unix格式。
2.vim filename,编辑文件,执行“:set ff”,若执行结果为fileformat=dos则为dos格式,若执行结果为fileformat=unix则为unix格式。

解决办法:
安装dos2unix
sudo apt-get install dos2unix
在损坏文件的目录下,执行覆盖
dos2unix xxxx.sh

问题4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值