Wal*_*l-E 4 linux sudo segmentation-fault tensorflow ubuntu-20.04
我有 Ubuntu 20.04。我的命令行文本编辑器(例如nano或 )pico无法再以用户身份在命令行中运行,我得到
user@hostname:~$ nano
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)
sudo nano但是,当我使用 sudo等执行此操作时,事情会起作用sudo pico...我没有这个问题vi
自从上次工作以来,我从 Ubuntu 进行了例行更新,并安装了几个带有conda. 我还编辑了使用 CUDA 工具包运行的张量流的 LD_LIBRARY_PATH:
echo $LD_LIBRARY_PATH:
/usr/local/cuda-11.5/lib64:/usr/local/cuda/extras/CUPTI/lib64:/home/rattie/miniconda3/lib/
[更新] 看起来这个为张量流编辑的 LD_LIBRARY_PATH 是罪魁祸首。我在 conda 基本环境中编辑它,而不是隔离为使用张量流创建的虚拟环境中的更改(例如通过$CONDA_PREFIX/etc/conda/activate.d/env_vars.sh)特别是,删除/home/rattie/miniconda3/lib/修复了问题,尽管我不明白为什么它导致我的命令(例如 nano)需要 sudo 权限。
我认为您的问题来自库冲突或不兼容问题,您应该LD_LIBRARY_PATH仅针对需要它的特定虚拟环境(例如 TensorFlow 或 CUDA)进行设置。
让我们在虚拟环境中执行一个环境激活脚本:
首先让我们创建一个新目录mkdir -p $CONDA_PREFIX/etc/conda/activate.d,然后创建一个文件 env_vars.sh touch $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh并将其添加到其中:
#!/bin/sh
export OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.5/lib64:/usr/local/cuda/extras/CUPTI/lib64:/home/rattie/miniconda3/lib/:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
然后保存,我们将创建一个停用脚本来恢复原始LD_LIBRARY_PATH
mkdir -p $CONDA_PREFIX/etc/conda/deactivate.d
Run Code Online (Sandbox Code Playgroud)
然后我们在其中创建一个文件 env_vars.shtouch $CONDA_PREFIX/etc/conda/deactivate.d/env_vars.sh
打开它并添加:
#!/bin/sh
export LD_LIBRARY_PATH=$OLD_LD_LIBRARY_PATH
unset OLD_LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
保存再试一下,冲突错误应该解决了
| 归档时间: |
|
| 查看次数: |
1648 次 |
| 最近记录: |