在没有 root 用户访问权限的情况下从源文件安装 zsh

在没有 root 用户访问权限的情况下从源文件安装 zsh

我克隆了源桀骜来自github的源文件,之后我运行了命令

bash install-sh

./install

它提示我

未指定输入文件。

然后按照我尝试过的说明进行操作

make install

我没有运气

*** 没有规则可以使目标“安装”。停止。

谁能给我一些提示或说明?

答案1

shellzsh很可能通过系统的包管理软件预编译为包。

shell的官方源代码发行版zsh,可在以下位置找到:https://www.zsh.org/pub/,包含一个configure脚本。 Git 存储库主要面向开发人员和想要为项目做出贡献的人们zsh。它缺少用于配置项目安装前缀等内容以及创建稍后用于构建软件的configure实际 Makefile 的脚本。make它缺少脚本,因为它是从存储库中的其余代码派生的。

根据项目的INSTALL文件,需要./Util/preconfig首先从存储库的顶级目录运行来创建configure文件。与此类似的预配置步骤在configure脚本(或等效内容)未分布在项目源代码存储库中的项目中相对常见。

完成后,您可以configure使用其--prefix选项来运行,以指向本地目录,例如"$HOME"/local您希望稍后运行时安装项目的位置make install。该实用程序将在所选安装前缀下make自动创建和其他目录。bin

另外,不要忘记将安装前缀的bin目录添​​加到变量中PATH

答案2

您的问题是您正在尝试安装到系统目录,而(非常一致)您不能作为非特权用户(这就是整个想法)。

因此,更改安装目标目录!

https://github.com/zsh-users/zsh/blob/master/INSTALL是你的参考。

configure脚本附带一个帮助命令:

./configure --help会告诉你可以更改安装前缀。

这可以简单地使用 完成./configure --prefix=/home/ren/prefix,假设有一个/home/ren/prefix您想要安装东西的目录。

然后,你就正常继续。之后,您必须告诉您的系统您想要在 中使用可执行文件/home/ren/prefix/bin,即export PATH=/home/ren/prefix/bin:$PATH。您还需要告诉它有库,例如/home/ren/prefix/lib64(您需要自己检查该路径);export LD_LIBRARY_PATH=/home/ren/prefix/lib64:$LD_LIBRARY_PATH。之后,您可以运行新编译的 zsh:

$> zsh

耶!

一般来说,我认为在您自己的系统上编译 shell 不应该在您的优先级列表中占据很高的位置。您可以使用包管理器安装它,更加明智。如果您只是想尝试一下,您可以使用podmandocker(在这种情况下只需将 podman 替换为 docker)来尝试运行容器,其中是 root,但不是系统的 root。

podman run -it --rm debian:11
root@abcdef123:/# apt update
root@abcdef123:/# apt install -y zsh
root@abcdef123:/# zsh
abcdef123:/# ## this is now zsh

相关内容