我克隆了源桀骜来自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 不应该在您的优先级列表中占据很高的位置。您可以使用包管理器安装它,更加明智。如果您只是想尝试一下,您可以使用podman
或docker
(在这种情况下只需将 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