凯鲁嘎吉
用书写铭记日常,最迷人的不在远方

Ubuntu常用命令以及配置环境遇到的问题

作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

一、Ubuntu常用命令

# 打开Anaconda Prompt

# 打开主目录

nautilus ~/

# 查看conda版本

conda -V

# 查看cuda版本

nvcc -V

# 查看cuDNN版本

cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

# 查看ubuntu版本

cat /proc/version

# 打开指定路径

cd /home/xxx/xxx/RL

# ubuntu下载软件

sudo apt-get install vim

# 查看显存占用和GPU利用率

nvidia-smi

watch -n 1 nvidia-smi

# 查看CPU使用情况

top # 终止按q

# 查看系统的总内存、已用内存、空闲内存、以及交换空间的使用情况

free -h

# 查看显卡型号

nvidia-smi -a

# 查看已安装包

conda list

# 安装包

conda install numpy

# 删除包

conda remove numpy

# 删除索引缓存、锁定文件、未使用的缓存包、tarball 和日志文件

conda clean --all -y

# 查看当前存放的虚拟环境

conda env list

# 创建python虚拟环境

conda create -n pytorch python=3.8

# 激活虚拟环境

conda activate tensorflow

conda activate pytorch

# 关闭虚拟环境

conda deactivate

# 删除虚拟环境

conda remove -n tensorflow --all

conda remove -n pytorch --all

# 按照env.yml创建环境,并安装相应软件

conda env create -f env.yml

sh install_envs.sh

# 导出/导入环境配置(复制别人的环境)

conda env export > env.yml

conda env create -f env.yml

# 导出/导入所有依赖库(复制别人的依赖库)

pip freeze > requirements.txt

pip install -r requirements.txt

# 修改conda环境名称

conda create --name newENV(新环境名称) --clone OldNEV(旧环境名称)

conda remove -n OldNEV(旧环境名称)--all

# 离线安装本地目录下的包

cd /home/xxx/xxx/dm_control

pip install -e .

cd ../dmc2gym

pip install -e .

cd ../../..

# 安装tensorflow(用的2.8.0)

pip install tensorflow==2.8.0

###pip install tensorflow -i https://pypi.tuna.tsinghua.edu.cn/simple

###conda install --channel https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ tensorflow-gpu==2.8.0

# 安装pytorch(python版本为3.8)

https://download.pytorch.org/whl/torch_stable.html

离线先下载好torch与torchvision,然后

cd /home/xxx/下载/

pip install torch-1.13.1+cu116-cp38-cp38-linux_x86_64.whl

pip install torchvision-0.14.1+cu116-cp38-cp38-linux_x86_64.whl

pip install torchaudio-0.13.1+cu116-cp38-cp38-linux_x86_64.whl

# 查看Mujoco是否安装成功

cd ~/.mujoco/mujoco-2.3.2/bin

./simulate ../model/humanoid/humanoid.xml

# 去掉Ubuntu文件夹锁

先进到当前目录,然后执行

sudo chown -R xxx filename

sudo chown -R xxx .

其中xxx为Ubuntu用户名,filename为待解锁的文件夹名称

第二行命令表示解锁当前目录下的所有文件夹与文件

# 多张显卡,选用指定显卡

device=torch.device("cuda:1" if args.cuda else "cpu")

# 去除requirement.txt中的版本号,只保留包名

sed 's/[=<>!~]=.*//' requirements.txt > requirements_no_version.txt

# 添加环境变量

gedit ~/ .bashrc

export xxx

source ~/ .bashrc

例如:

export LD_LIBRARY_PATH=~/.mujoco/mujoco-2.3.2/bin

export MUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH}

export MJLIB_PATH=/home/xxx/.mujoco/mujoco-2.3.2/lib/libmujoco.so.2.3.2

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so.2.1.0

 


 

二、一些错误以及解决方案

问题:AttributeError: 'dict' object has no attribute 'env_specs'

解决:换版本,pip install gym==0.25.2, 我用的是gym==0.22.0这个版本

 

问题:安装gym==0.19.0时出错error: subprocess-exited-with-error以及ModuleNotFoundError: No module named 'gym.envs.atari'

解决:pip install setuptools==65.5.0 pip==21,pip install gym==0.19.0

 

问题:ModuleNotFoundError: No module named 'numpy.exceptions'

解决:pip install numpy==1.26.4 scipy==1.11.4 --force-reinstall

 

问题:AttributeError: module 'ml_dtypes' has no attribute 'float8_e4m3b11'

解决:pip install ml_dtypes==0.2.0

 

问题:安装mujoco_py并测试时提示Cython.Compiler.Errors.CompileError

解决:pip uninstall cython

pip install cython==0.29.21

 

问题:undefined symbol: __glewBindBuffer

解决:

sudo apt-get install libglfw3

apt-cache search glew

sudo apt-get install libglew-dev

sudo apt-get install libglew2.1

同时添加环境变量

sudo gedit ~/.bashrc

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so

source ~/.bashrc

 

问题:GLEW initalization error: Missing GL version

解决:sudo apt-get install -y libglew-dev

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so

如果还失败的话,在终端先输入unset LD_PRELOAD再执行python程序。

 

问题:RuntimeError: Failed to initialize OpenGL

解决:先输入unset LD_PRELOAD再执行python程序。

 

问题:复现别人的代码,各种版本不兼容问题

解决:不按照原文作者给出的requirement.txt或者env.yml文件下载相应版本的依赖库,把版本号去掉,直接pip install xxx。运行程序缺啥下啥,下载时也不要指明版本号。

 

问题:PackageNotFoundError: Packages missing in current channels

解决:

anaconda search -t conda kornia

anaconda show forklift/kornia

conda install --channel https://conda.anaconda.org/forklift kornia

 

问题:TensorBoard打不开,错误代码:ERR_CONNECTION_REFUSED

解决:关闭WiFi

 

问题:bash: ./hello : 权限不够

解决:chmod a+x hello

 

问题:python matplotlib保存图片不全的解决办法

解决:plt.savefig('example.png')变成plt.savefig('example.png', dpi=600, bbox_inches='tight')

 

问题:nvidia-smi出错,错误原因$ nvidia-smi

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

解决:解决办法一:安装必要的内核头文件

如果之前是正常的,重启后出现这个错误,很可能是Ubuntu内核版本升级造成的。让我们重新安装内核头文件。

$ sudo apt install linux-headers-`uname -r`
#or
$ sudo apt install linux-headers-$(uname -r)

然后输入nvidia-smi,输出可能正常。如果仍然错误,请继续使用以下方法。

解决办法二:使用 DKMS 重新安装内核的 NVIDIA 驱动程序

有时,重新启动计算机后,NVIDIA SMI会显示NVIDIA驱动程序丢失,这是由于Linux内核升级,以前的NVIDIA驱动程序与连接不匹配。

DKMS(Dynamic Kernel Module System)可以在内核变化后自动编译模块,并适应新的内核。它允许离散内核模块更新,而无需修改整个内核。使用 dkms 重新安装内核的相应驱动程序:

$ sudo apt install dkms

$ sudo dkms install -m nvidia -v 470.182.03

$ dkms status nvidia

nvidia/470.182.03, 5.15.0-88-generic, x86_64: installed

注意:上述命令行中的 470.182.03 是 NVIDIA 的版本号。当您不知道它时,请输入 /usr/src 目录,您将看到带有后缀的 nvidia 文件夹。或者,使用以下命令进行查询。

$ ls /usr/src | grep nvidia

nvidia-470.182.03

再次输入 nvidia smi 时,正确输出。

解决办法三:安装NVIDIA驱动程序

第 1 步:在安装驱动程序之前,请确保更新软件包存储库。运行以下命令:

$ sudo apt update

$ sudo apt upgrade

第 2 步:搜索 Nvidia 驱动程序,运行以下命令。输出显示适用于 GPU 的可用驱动程序列表。

$ apt search nvidia-driver

第 3 步:从可用 GPU 驱动程序列表中选择要安装的驱动程序。最合适的是经过最新测试的专有版本。

$ sudo apt install nvidia-driver-470

在本教程中,我们安装了 nvidia-driver-470,这是该 GPU 最新测试的专有驱动程序。

第 4 步:使用以下命令重新启动计算机:

# sudo reboot

再次输入 nvidia smi 时,正确输出。

解决办法四:

1. sudo apt-get install dkms

2. sudo apt-get install nvidia-driver-550

但是在进行第二步之前,不知道自己服务器nvidia-driver的版本号,可以采用命令来查找一下ubuntu-drivers devices

外加一条:禁止内核自动更新:sudo gedit /etc/apt/apt.conf.d/10periodic,将双引号中的“1”全部置“0”即可,修改后保存

 

问题:dpkg: 处理软件包 cgmanager (--configure)时出错:子进程已安装 post-installation 脚本返回错误状态 1,由于已经达到 MaxReports 限制,没有写入 apport 报告。dpkg: 处理软件包 pulseaudio (--configure)时出错:依赖关系问题 - 仍未被配置

解决:由于所有用apt安装的软件会将解包信息放到 var/lib/dpkg/info/ 路径下, 所以我们只要重新生成一下info的内容就好了

cd var/lib/dpkg/  # 切路径

sudo mv info info.bak # 将原有的info更名

sudo mkdir info # 重建新的info

sudo apt update && sudo apt -f install # update一下, 并且安装所有的依赖

sudo mv info.bak/* info/ # 把info.bak中的文件全部移动到 info 中

sudo -rf info.bak # 删掉 info.bak

 

问题:Ubuntu文件夹点击不了

解决:1. 在命令行输入:killall nautilus

2. 尝试重新启动 GNOME Shell

使用 Alt + F2 打开运行命令的对话框

输入 r 然后按回车(重启Shell)

 

问题:Ubuntu系统Todesk网络异常

解决:对其进行初始化操作

sudo systemctl stop todeskd.service

sudo mv /opt/todesk/config/config.ini /opt/todesk/config/config.ini.bak

sudo systemctl start todeskd.service

 

问题:error: command 'swig' failed: No such file or directory

解决:sudo apt-get install swig

 

问题:ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.

xxx requires xxx<3.20,>=3.9.2, but you have xxx 5.29.5 which is incompatible.

解决:要么按照要求安装相应版本,要么直接忽略依赖pip install xxx==0.xxx.0 --no-deps

 

问题:Ubuntu 里qq最小化消失,在后台运行但前台看不到

解决:按快捷键Ctrl+Alt+Z

 

问题:在Ubuntu下登录qq的时候显示“您已登录xxxxx,不能重复登录”

解决:先按快捷键Ctrl+Alt+Z,看看能不能弹出qq;不行的话,终端输入ps -e,找到qq对应的PID,然后杀死,例如我查到自己有两个qq进程,终端输入kill 17676

 

问题:wandb: W&B API key is configured. Use `wandb login --relogin` to force relogin

解决:可以配置也可以先关闭,这里选择关闭,os.environ["WANDB_MODE"] = "offline"或者wandb.init(mode="offline")

在线查看命令:wandb sync /home/xxx/wandb/offline-run-20250909_090918-evmcgt33

 

问题:Windows右击文件夹一直转圈

解决:卸载百度网盘

 

问题:Windows内存占用率高,但是找不到内存消耗大的程序

解决: 1、在传统界面按Win键+ R键,在搜索框中输入msconfig,按回车键。

2、点击”服务”选项,选择”隐藏所有的微软服务”,然后点击全部禁用。(如果可选)

3、点击”启动”选项,,点击”打开任务管理器”,然后禁用全部启动项并确定。

然后如何从干净模式状态回复到正常模式:

a. 按Win+R 打开运行窗口,在搜索框中输入msconfig,按回车键。

b. 在“常规”选项,单击“正常启动 - 加载所有设备驱动程序和服务”。

c. 单击“确定”。当提示您重新启动计算机时,单击“重新启动”。

 


 

如果后续遇到其他问题也会持续更新。

posted on 2025-12-05 10:00  凯鲁嘎吉  阅读(10)  评论(0)    收藏  举报