记录Linux安装软件遇到的坑

记录Linux安装软件遇到的坑

Scroll Down

前言

个人还是喜欢在 Linux 环境中进行编程,因为在 Linux 中安装开发组件和配置环境比较方便,但有时候经常会遇到一些坑,例如环境依赖问题等,所以特意写了这篇文章,把一些经历和心得记录下来,以便不时之需。

常见问题

pip 安装 mysqlclient 报错

  • 利用 pip 安装 MySQL 驱动时,会遇到以下的情况。
    利用 pip 安装 MySQL
  • 可以通过以下命令行安装 dev 依赖来解决。
    sudo apt-get install libmysqlclient-dev python3-dev
    

升级 pip 导致 pip 异常

  • 升级 pip 以后出现 ImportError:cannot import name 'main' 错误。
  • 可利用命令行 sudo vim /usr/bin/pip3 将原来的内容
      from pip import main
      if __name__ == '__main__':
          sys.exit(main())
    
  • 修改为以下内容即可解决该问题:
      from pip import __main__
      if __name__ == '__main__':
          sys.exit(__main__._main())
    

npm 安装 node-sass 依赖报错

  • npm 在安装 node-sass 时,会从 GitHub 上下载部分依赖,由于墙的存在,可能会导致下载超时。
  • 可以通过设置淘宝镜像源来解决:
    npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
    
  • 或者设置全局镜像源,再进行依赖安装:
    npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
    

运行 docker 命令提示权限不足

  • 在安装 docker 之后运行 docker 命令,可能会遇到如下的情况,提示 Got permission denied:
    安装 docker 之后运行 docker 命令
  • 因为 docker 运行在 Unix Socket 端口上,默认只有 root 用户才有权限访问,因此需要将当前用户加入到 docker 用户组中,如此一来当前用户就有权访问 Unix Socket 端口了。
  • 依次执行以下命令即可:
    将当前用户加入到 docker 用户组中
    sudo groupadd docker               #添加docker用户组
    sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
    newgrp docker                     #更新用户组
    docker ps                          #测试docker命令是否可以使用sudo正常使用
    

docker pull镜像速度太慢

  • 用vim编辑 /etc/docker/daemon.json 文件:

    sudo vim /etc/docker/daemon.json
    
  • 向其中写入国内镜像源地址:

     {
          "registry-mirrors": [
              "https://dockerhub.azk8s.cn",
              "https://registry.docker-cn.com"
          ]
      }
    
  • 保存退出后,重启docker服务:

    sudo systemctl daemon-reload
    sudo systemctl restart docker