sudo cmake install
当我使用或命令在 Debian (Buster) 机器上安装任何项目后sudo make install
,二进制文件会被放置在里面/usr/local/bin
,但尽管 PATH 变量设置正确,即使在重新启动后,bash 或 Fish 也无法找到以这种方式安装的二进制文件的命令。
cmake
到目前为止,这已经发生了nvim
。例如nvim
,我遵循从源代码构建的说明:
- 使用 git 克隆存储库
- 使 CMAKE_BUILD_TYPE=发布
- 须藤进行安装
现在,如果我运行nvim
,则找不到该命令,但如果我运行,则sudo nvim
二进制文件会正确启动。
我比较了内部无需 sudo 权限即可完美执行的二进制文件的文件权限/usr/bin
,它们与内部二进制文件的权限完全相同/usr/local/bin
。
-rwxr-xr-x 1 root root
。
我做错了什么,为什么/usr/bin
没有 sudo 的可执行文件中的二进制文件和从源代码安装的文件/usr/local/bin
不是?
这是我的路径变量:
/usr/local/bin:/usr/bin:/bin:/usr/games
附加信息:如果我运行:/usr/local/bin/nvim
这是输出:
fish: The file “/usr/local/bin/nvim” is not executable by this user
如果我运行type -a nvim
输出是:
type: Could not find 'nvim'
如果我运行sudo ./pathlld /usr/local/bin/nvim
我会得到以下输出:
drwxr-xr-x 19 root root 4096 Dec 22 12:17 /
/dev/nvme0n1p2 on / type ext4 (rw,relatime)
drwxr-xr-x 14 root root 4096 May 5 13:19 /usr
drwxr-xr-x 7 root root 4096 Mar 24 15:51 /usr/local
drwx------ 2 root root 4096 May 5 14:21 /usr/local/bin
-rwxr-xr-x 1 root root 10319072 May 5 14:21 /usr/local/bin/nvim
我正在运行西门子公司的定制操作系统,称为“西门子工业操作系统”;它基本上是一个带有实时补丁的 Debian Buster。
答案1
问题是这样的:
drwx------ 2 root root 4096 May 5 14:21 /usr/local/bin
组和其他人没有执行和读取权限/usr/local/bin
。以 root 身份运行:
chmod 755 /usr/local/bin
恢复此目录的标准权限。