我是Linux新手,让我解释一下这个问题。我正在尝试comsol
使用某种网络许可证进行安装。
如果我使用sudo ./setup
服务器目录无法识别用户名“root”。服务器识别出我的用户名,即 zahir。如果我只是写./setup
安装通过了许可证检查阶段,但无法继续,因为它无法在/usr/local
.
zahir
我应该使用什么命令才能以 root 权限运行安装?
答案1
尝试寻找setup
脚本的任何帮助。也许它带有一个README
文件或者它接受一个-h
开关(通过运行检查./setup -h
)。一个写得相当好的脚本应该允许您更改安装目录。你可以做类似的事情
./setup --prefix=/home/zahir/
或类似的内容(取决于您从脚本的帮助中找到的内容)。
这将安装comsol
在您的主目录中,然后您可以/usr/local
使用sudo
.
更新
您报告上述方法有效,但该comsol
命令无法识别。这仅意味着您需要将二进制文件的位置添加comsol
到PATH
变量中。
假设comsol
已安装在 中/usr/local/comsol35
,您只需添加/usr/local/comsol35/bin
到PATH
变量中即可。 (您系统上的实际路径可能会有所不同)。
添加路径到您的PATH
多变的:
只需运行以下命令:
export PATH=$PATH:/usr/local/comsol35/bin
这只会改变PATH
您当前会话中的。要使更改永久生效,您可以执行以下操作:
echo 'export PATH=$PATH:/usr/local/comsol35/bin' >> ~/.bashrc
对于上述命令,使用单引号而不是双引号非常重要,这样就可以$PATH
按字面意思添加到您的命令中.bashrc
,而不是进行插值。您还应该确保使用>>
代替,>
以免破坏您的.bashrc
.
运行该echo
命令后,该comsol
命令应该可以从您打开的任何新终端使用。如果您想让更改在用于发出命令的终端中生效echo
,则必须运行
. ~/.bashrc
(是的,该命令只是一个句点)
答案2
有一些命令无法通过sudo
例如显然您的sudo ./setup
.我通常会按如下方式成为 shell 的 root:
选项1- 您的系统可能不支持
$ sudo -i
选项2- 应得到广泛支持
$ sudo su -
一旦您运行了这两个命令之一,您就有效地进入了该 shell,并且可以运行您的./setup
命令。确保将目录 ( cd
) 更改回./setup
程序运行的位置。
以 root 和 zahir 身份运行?
如果您需要自己运行安装,zahir
则可以创建安装所需的目录,以便zahir
可以提前安装到其中,然后运行./setup
as zahir
。
$ sudo mkdir -p /usr/local
$ sudo chown -R zahir /usr/local
答案3
我猜测setup
脚本正在从您的环境中读取用户名。它可能会检查$USER
或环境变量之一$USERNAME
(这些是默认变量,您可以通过echo $USER
在终端中运行来检查它们的值)。它可能包含一行像
current_user=$USERNAME
尝试在文件中搜索$USER
:
grep USER setup
然后您应该能够将其更改为zahir
,例如:
current_user=zahir
如果您可以将脚本发布到某个地方,我很乐意查看并给您更具体的答案。