使用 usermod 更改用户名后的 rvm 问题

rvm problems after changing user name with usermod

我使用以下命令更改了我的用户名、主目录和组名:

usermod -l newname oldname
usermod -d /home/newname -m newname
groupmod -n newname oldname

进行此更改会产生一些影响,但(看似)最后一个问题是 Ruby,我通过 rvm 安装了它。具体来说,我的 Ruby 代码中的 none 现在将 运行 因为找不到各种需要的资源。示例错误消息:

/home/newname/.rvm/rubies/ruby-2.4.1/bin/ruby: error while loading shared libraries: libruby.so.2.4: cannot open shared object file: No such file or directory

/home/newname/.rvm 中搜索 oldname,有很多很多 (10,000+) 个结果。

是否有一种安全的方法(也许是一些 rvm 命令)来更新各种文件中列出的所有文件路径(例如,.installed.list 出现了很多次 oldname) 在我的 .rvm 目录中反映 newname 而不是 oldname?还是我只需要 uninstall/reinstall 一切?

我不敢尝试用 sed 解决这个问题,因为 grep 返回的结果类似于

Binary file src/ruby-2.4.1/regerror.o matches

但我在这个二进制文件中的任何地方都看不到 oldname。所以,我认为 sed 可能只会让我处于比现在更糟糕的境地。

我正在使用 Linux Mint 18.3、rvm 1.29.3 和 Ruby 2.4.1.

我建议重新安装 rvm

您可以使用 rvm implode 擦除您的 rvm 数据。或者您可以将 ~/.rvm 目录重命名为另一个名称,这样 rvm 就看不到它,然后安装 rvm 和您的 rubies。

在任何给定的 rvm ruby 安装中,您可以将 $GEM_HOME 目录递归复制到新位置,这样您就不会必须重新安装您的 gem(或记住要安装的 gem)。