服务器与环境配置——Ubuntu22.04杂记
系统配置
apt/apt-get Proxy 配置
sudo nano /etc/apt/apt.conf.d/proxy.conf
编辑proxy.conf文件如下:
Acquire::http::proxy "http://username:password@your_proxy:port/";
Acquire::https::proxy "https://username:password@your_proxy:port/";
Acquire::ftp::proxy "ftp://username:password@your_proxy:port/";
修改主机名
默认主机名通常太长影响指令输入:
- 临时修改主机名使用
sudo hostnamectl set-hostname YourServerName
- 永久修改主机名需要将/etc/hosts和sudo nano /etc/hostname中原本的主机名替换成新的主机名
用户权限
添加用户到sudo:usermod -a -G sudo xxxx
文件复制
需要copy工程又不想带着数据或者checkpoint这类大文件一起传输:rsync -av --exclude=experiments/ source_folder/ target_folder/
一些容易出错的python库安装
Pytorch3D (0.7.5)
- 问题:编译出错,安装不上
- 解决:通常是因为G++,GCC版本过高(如11),需要用9版本进行编译(更低没测试过),在编译命令前加上:
CC=gcc-9 CXX=g++-9
即可解决
psbody-mesh 4.0 (link)
- 问题:使用 pip install git+http://github.com/MPI-IS/mesh.git 后无报错无异常,但实际使用的时候无法显示Meshviewer窗口。
- 步骤1:核对需要的库是否安装:
sudo apt-get install libboost-dev
- 步骤2:使用
meshviewer open --port xxxx
检查问题,发现libGL无法正常导入 swrast,报错如下:
libGL error: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so:
cannot open shared object file: No such file or directory
可以看出来,这个叫swrast_dri.so的文件在列出的几个搜索路径中都找到不到,这是因为对于ubuntu22.04, 该文件的位置通常为 /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so , 因而使用软连接挂过去就可以帮助程序找到改文件:sudo ln -s /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so /usr/lib/dri/
- 步骤3:再次使用步骤二中语句检查问题,可能会发现发现libGL仍然无法正常导入swarst,报错如下:
libGL error: MESA-LOADER: failed to open swrast: /xxxx/../lib/libstdc++.so.6:
version `GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-15.so.1)
此时可以检查一下libstdc++.so.6文件中的版本信息: strings /xxxx/../lib/libstdc++.so.6 | grep GLIBCXX_
,如果发现确实没有GLIBCXX_3.4.30版本, 那么可以使用sudo locate libstdc++.so.6
在全局定位一下其它的libstdc++.so.6文件,看一下哪个有GLIBCXX_3.4.30版本,再挂个软连接到上面的 /xxxx/../lib/libstdc++.so.6
,就可以修复问题了
其它
- 当在默认pip设置覆盖不到的python环境安装库产生SSL验证错误问题[SSL: CERTIFICATE_VERIFY_FAILED],可以使用
--trusted-host pypi.org
和--trusted-host files.pythonhosted.org
临时不验证SSL证书,其中pypi.org和pythonhosted.org可替换维其它源的连接