相关文章推荐
腼腆的烈马  ·  [Anaconda]——Linux下cond ...·  20 小时前    · 
越狱的人字拖  ·  hubbledotnet ...·  1 年前    · 
爱笑的桔子  ·  import android ...·  1 年前    · 
博学的墨镜  ·  mysql - ...·  1 年前    · 
  • 3 让Linux下的子用户共享root用户下的anaconda环境
  • 3.1 拷贝root用户的`.bashrc`配置文件,并覆盖子用户`/home/自用户名/.bashrc`配置文件
  • 3.2 让子用户可以在root用户的anaconda下新建虚拟环境
  • 1 问题描述

    由于一开始把anaconda安装到了: /HDD/anaconda3 路径下,但是后面由于 /HDD 空间不足,所有就需要把anaconda整体迁移,这样就可以保住以前安装的库包,虚拟环境等,否则一切都要重头再来,太麻烦了!!!

    把anaconda整体从 /HDD/anaconda3/ 移动到 /home/ 路径下

    2 Linux上整体迁移Anaconda过程

    2.1 移动anaconda文件到新的路径下

    mv /home/anaconda3 /home

    已经成功移动到 /home 目录下,如下:

    (base) [root@localhost /home]$ ls
    anaconda3  project  shl  tools  xcd  zhangq
    (base) [root@localhost /home]$
    

    2.2 修改Anaconda的环境变量

    2.2.1 修改~/.bashrc中anconda环境变量

    1、打开.bashrc配置文件,

    vi root/.bashrcvi ~/.bashrc

    修改前,如下:

    # >>> conda initialize >>>
    # !! Contents within this block are managed by 'conda init' !!
    __conda_setup="$('/HDD/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
    if [ $? -eq 0 ]; then
        eval "$__conda_setup"
        if [ -f "/HDD/anaconda3/etc/profile.d/conda.sh" ]; then
            . "/HDD/anaconda3/etc/profile.d/conda.sh"
            export PATH="/HDD/anaconda3/bin:/usr/local/gcc/bin$PATH"
    unset __conda_setup
    # <<< conda initialize <<<
    

    修改后,如下:(一共修改四处,主要修改就是有关anaconda的一些环境变量的路径):

    # >>> conda initialize >>>
    # !! Contents within this block are managed by 'conda init' !!
    __conda_setup="$('/home/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
    if [ $? -eq 0 ]; then
        eval "$__conda_setup"
        if [ -f "/home/anaconda3/etc/profile.d/conda.sh" ]; then
            . "/home/anaconda3/etc/profile.d/conda.sh"
            export PATH="/home/anaconda3/bin:/usr/local/gcc/bin$PATH"
    unset __conda_setup
    # <<< conda initialize <<<
    

    2、让修改后的环境变量生效

    source ~/.bashrc

    2.3 修改可执行文件conda

    1、打开conda配置文件

    vi /home/anaconda3/bin/conda

    2、修改conda文件
    把conda第一行的路径修改成如下:
    修改前:

    #!/HDD/anaconda3/bin/python
    
    #!/home/anaconda3/bin/python
    

    此时在命令行中输入conda,就会显示一些命令参数的!

    如果输入conda显示没有该命令,则重新打开一个终端再试一下

    2.4 修改可执行文件pip

    修改可执行文件pip之后,pip和python才可用。没有修改前,如果使用pip会报如下错误:

    (base) [root@localhost /home/anaconda3/envs/mmdetection/bin]$ pip -V
    -bash: /home/anaconda3/bin/pip: /HDD/anaconda3/bin/python: 坏的解释器: 没有那个文件或目录
    

    1、打开pip配置文件

    vi /home/anaconda3/bin/pip

    2、修改pip文件
    把pip第一行的路径修改成如下:
    修改前:

    #!/HDD/anaconda3/bin/python
    
    #!/home/anaconda3/bin/python
    

    2.5 修改虚拟环境中的可执行文件pip

    修改虚拟环境下的可执行文件pip之后,进入虚拟环境后pip和python才可用。没有修改前,如果在虚拟环境中使用pip会报如下错误(我的虚拟环境是mmdetection):

    (mmdetection) [root@localhost /home/project/mmdetection_hat]$ pip -V
    -bash: /home/anaconda3/envs/mmdetection/bin/pip: /HDD/anaconda3/envs/mmdetection/bin/python: 坏的解释器: 没有那个文件或 目录
    

    1、打开pip配置文件

    vi //home/anaconda3/envs/mmdetection/bin/pip

    2、修改pip文件
    把pip第一行的路径修改成如下:
    修改前:

    /HDD/anaconda3/envs/mmdetection/bin/python
    
    /home/anaconda3/envs/mmdetection/bin/python
    

    3 让Linux下的子用户共享root用户下的anaconda环境

    上面我们已经知道root用户下,anaconda的很多环境变量都是在root/.bashrc(或~/.bashrc 是同一个文件)配置文件中定义的,如果要让子用户能够共享到root用户下的anaconda所有环境(包括虚拟环境),就必须让子用户能够访问到/root/.bashrc中定义的anaconda的环境变量,所以我们把/root/.bashrc拷贝到子用户的home目录下,覆盖子用户的.bashrc配置文件

    3.1 拷贝root用户的.bashrc配置文件,并覆盖子用户/home/自用户名/.bashrc配置文件

    例如,我想要子用户shl可以使用root用户下的anaconda环境:

    1、拷贝root用户的.bashrc配置文件,并覆盖子用户/home/自用户名/.bashrc配置文件

    cp /root/.bashrc /home/shl/.bashrc

    3.2 让子用户可以在root用户的anaconda下新建虚拟环境

    如果要让子用户可以在root用户的anaconda下新建虚拟环境,就必须让子用户对anaconda的安装路径:/home/anaconda3读写执行的权利,因此只要赋予子用户对/home/anaconda3权利即可:

    例如:赋予用户shl/home/anaconda3 读写执行权利:

    chown -R shl:shl /home/anaconda3

    以上操作都是在root用户下操作的,否则你没有权限

    我作为该项目的开发团队成员之一,在此说明: 1. 这个项目是完全由自己编写的,没有借助商业的帮助,没有他人冒充,也不存在父母帮我们编写后给我们挂名的问题。同时因为我们都是中学生,没有多少资金,也不可能进行"买广告"等不正当的商业行为; 2. 我们自己做的项目绝对没有博眼球,单纯就是想对Windows在网页上进行模仿和创新; 3. 我们的实力并不是那么差,我们开发团队成员曾获得C++二级全市第一、CSP-J国赛一等奖、蓝桥杯省赛一等奖等多个奖项,成员每人编程能力全国前4%-10%,并且我们人均精通前端和后端,就拿我来举例,我能熟练使用git命令行,从克隆仓库,提交、推送更改到拉取合并、暂存、设置远程、配置ssh密钥都烂熟于心,熟悉Linux系统,从查看当前目录下文件和文件夹到使用命令行手动安装驱动都熟悉,熟悉NodeJS,会下载、导入模块和程序编写与运行,精通HTML, CSS和JS,基本的东西都能灵活运用,并且熟悉Python, C, C++和汇编语言; 4. 我们项目链接在 https://github.com/tjy-gitnub/win12,现已经获得超1500颗Stars 本人原创作者,在此解释声明一二: 1. 我的父母还没有无耻到做这种无耻的事情,我也对我的能力有信心,目前也不需要这些偷鸡摸狗的见不得光的东西来造假,请各位不要以小人之心度君子之腹。 2. 我今年初三,项目是从初一开始做的,各位不相信的欢迎上github看提交记录,可以看一下初版和现在的区别,UI和js都有不小更改。 3. 团队组成:今年一位初三,一位初一,一位5+4制的初一。更新记录中明确记录了哪些功能是哪位所开发的。 4. 我在github上,bilibili上没有受到过任何一个人的质疑,我对中国的网络环境表示蔑视。 5. 本项目的初中只是为了兴趣,没有想到火了起来。 我不理解你们是如何通过代码读出作者年龄的?难道是语文考试要加入代码阅读赏析的题目了吗?真心觉得很厉害。 6. 不愿与某些人同流,也无众位深厚阅历经验,只望能得清白之名。感谢大家让我懂得了何乃人情世故,孰谓世态炎凉,世俗红尘。你们给我的人生上了重要的一课。人间哪有什么真善美啊,呵。社会的病胎罢了。 看了 wangEditor 的公告,如鲠在喉。去年七月,我在一篇《关于剔除 layedit 组件》的公告中,还推荐了几款 editor 组件用于替代,其中就包括了 wangEditor, 转眼之间,仿若时空交错,不免有些感慨。 在国内由个人发起的开源项目,似乎都很难跳出相同的宿命,不断有人走进这个赛道,但能抵达终点并完成突破的却屈指可数。Layui 曾经同样倒在了赛道,2021 年宣布关站之前,Layui 的百度指数还一度领先 Bootstrap, 如此一个拥有广泛用户群体的 UI 库,本该迎来新的突破,却在疾跑中戛然止步,至今令人迷惑。人们看到的,是一篇充满悲情色彩的公告,而公告的背后,是创作者在面对内外交织的困境中不得已做出的举措,当我们没有足够的力量冲破眼前的障碍,除了停下来避开它,还有别的更优选择么。你很难想象除此之外还有多少历史包袱… 譬如,也是由于种种原因,当初 Layui 在 Github 和 Gitee 待处理的 Issue 数量,不下于 2000,各种议题参次不齐,我差不多花了半年时间去逐一审阅,多少个日夜消耗,多少次自我情绪的对抗… 就不多提了。 尽管这两年来,Layui 的受众者已呈断崖式流失,但正因为小众,反而如释重负,甚至让我重新找回了一些开源的纯粹。 共勉 🙂