在腾讯云的centos7上痛快的“fuck”

我也来水一水文章,讲讲我在用腾讯云的centos7镜像部署的服务器上能痛快的执行“fuck”命令之前到底经历了多少“磨难”,也算是给自己和别人一个参考吧

“fuck”命令实际上是一个python模块“thefuck”,具体我也不在这多废话,常规的安装教程网上也是一搜一大把,这里不做赘述,我主要讲一讲我踩过的坑

首先是python版本,centos7默认的python版本是2.x,而目前thefuck模块所需要的python是python3.x,所以得先安装python3,然后再通过安装模块的方式安装thefuck,这看起来没啥难的,但腾讯云的镜像我猜可能是由于历史原因,里面埋了一些坑

1,“mirrors.tencentyun.com”

在我这几天折腾服务器的时候,这个奇怪的域名是我踩过最多的坑,我猜这个域名可能是腾讯云以前的域名,不过目前无法求证这个是腾讯云内网访问的域名。它之所以会称为一个坑,是因为腾讯云的centos镜像里面很多地方的“源”都是这个,yum的源和pip的源都是这个,yum的源的问题我通过查阅资料改掉了,这问题不大,但头疼的是pip的源

21.8.14 1:54pm 更新:腾讯云的服务器建议不要更改dns,默认的dns是腾讯云的内网dns,腾讯云的镜像里面有很多地方都是用的腾讯云的内网域名,此处参考资料:

1、云服务器 NTP 服务相关 - 常见问题 - 文档中心 - 腾讯云#若改变内网 DNS,会有哪些具体影响?,官方文档,更新于21年6月

2、云服务器 内网服务 - 产品简介 - 文档中心 - 腾讯云#内网dns,官方文档,更新于20年6月

21.8.13 10:18pm 更新:经查阅资料,“mirrors.tencentyun.com”为“腾讯软件源”镜像的内网访问域名,它的公网访问域名为“mirrors.cloud.tencent.com”和“mirrors.tencent.com”,这两个公网域名是可以用任意dns解析并访问的,而“mirrors.tencentyun.com”是只能通过腾讯云的内网dns才能解析并访问的。此处参考资料:

1、《云服务器镜像问题("Couldn't resolve host 'mirrors.tencentyun.com') - JunQiu - 博客园》,但由于年代久远(17年的文章),所以仅供参考,有效性已无法保证

2、《云服务器 腾讯云软件源加速软件包下载和更新 - 运维指南 - 文档中心 - 腾讯云》,官方文档,更新于21年1月

不知道藏在哪的“Tencentyun”

直接安装thefuck,pip会自动安装所需的其它模块,这本是好事,但头疼的是这个不知道藏身在何处的“Tencentyun”,安装网上的方法更改pip3的源,结果都没用,我只能从它的日志里面找到它需要但又下载失败的那个模块,然后通过pip3 install命令去手动安装,而且还得注意安装顺序,不然“Tencentyun”就又会出来找你麻烦如果你问我是怎么知道的,那我就用图片来回答你

由腾讯软件源的内网访问地址带来的坑到这里暂时算是告一段落了,接下来这个坑应该是centos7“通用”的坑

2,“python-dev”

因为缺少python-dev而导致的文件缺失

在图中,从报错信息来看,似乎只是缺少一个文件而已,其实这又是一个坑——缺少python-dev这个程序包。不过可别以为缺啥就直接yum install啥就行了,如果你真如此天真,那么等待你的只有“找不到这个包”的报错。在centos里面它不叫这个,叫python-devel,但这在centos7里面又是另一个坑,你直接安装python-devel安装的是python2.x的,但安装thefuck的是python3.x,所以得安装python36-devel,在安装完成之后再安装psutil,然后安装pytest-runner,接着是pyte,在这些都安装完成之后再来安装thefuck,装完之后fuck几下就可以正常使用了

所以说,在坑爹的腾讯云centos7上安装thefuck的全部命令是:

#此处默认你已安装python3,能正常执行pip3命令
yum install python36-devel
#逐个安装thefuck所需的依赖
pip3 install six
pip3 install psutil
pip3 install pytest-runner
pip3 install pyte
pip3 install thefuck

在安装完这些之后,执行fuck会提示让你配置环境,这个时候再执行一次“fuck”,然后再执行source ~/.bashrc就完成了fuck的安装,可以“愉快的”在服务器上fuck了

顺带说一句,腾讯云的centos8可以直接pip3 install thefuck,不用手动去一个个安装那些奇怪的依赖模块,再就是没事别乱改服务器的dns,尤其是当服务器的默认dns是内网dns的时候,判断dns是不是内网dns,在云下ping一下就知道了

996.icu

996.icu

点赞
  1. OtoyaLee说道:
    Google Chrome Android 11
    学到了一课,牛逼
    1. 叶子说道:
      Google Chrome Windows 10
      :coolapk63:
      1. Gaoice说道:
        WebView Android 11
        以后多写 :huaji: ,但标题文明点喵~
        1. 叶子说道:
          Google Chrome Android 11
          :coolapk62: :coolapk63: 然而我习惯了有事说事 :coolapk61: 说话可能有点直 :coolapk65: 这套操作执行下来的结果的确就是在服务器上可以执行“fuck”命令 :coolapk66:
          1. Gaoice说道:
            WebView Android 11
            :huaji3:
            1. 叶子说道:
              Google Chrome Android 11
              好家伙,不知道啥毛病,只能在后台回复了,你这个评论在前台的回复按钮没了,管理后台不能打表情有点头疼
        2. 叶子说道:
          Google Chrome Windows 10
          文章已更新
    2. 叶子说道:
      Google Chrome Windows 10
      文章已更新

发表评论

电子邮件地址不会被公开。必填项已用 * 标注