![为什么这个特定命令中需要“sudo”?](https://linux22.com/image/1276800/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%99%E4%B8%AA%E7%89%B9%E5%AE%9A%E5%91%BD%E4%BB%A4%E4%B8%AD%E9%9C%80%E8%A6%81%E2%80%9Csudo%E2%80%9D%EF%BC%9F.png)
sudo yum install automake libtool flex bison pkgconfig gcc-c++
boost-devel libevent-devel zlib-devel python-devel ruby-devel
在 CentOS 5 上安装 Thrift 所需的软件包。
是否有可能运行没有 sudo 的版本?
编辑:我没有 root 权限,也不在 sudoers 文件中。我想知道我是否可以做一些事情,比如yum install automake .......
不等待/询问是否添加到 sudoers 文件中
答案1
是的,这是可能的,但没有 root 访问权限则不行。如果您拥有足够的权限来访问完整命令所需的内容,则不需要 sudo 命令。
例如,如果您以 root 身份登录。或者,首先通过发出以下命令成为“超级用户”:
su
这实际上需要 root 密码。两者都不推荐。最好使用具有最少必要权限的系统,并在需要时使用 sudo,就像完整命令已经做的那样。
安装任何主要的东西(开发工具)几乎总是需要访问主文件夹之外的文件夹 ~/
*这适用于所有 Linux 发行版,而不仅仅是您正在使用的 CentOS。
答案2
我自己从未尝试过做这样的事情,但据我所知,rpm 包(至少是正确打包的包)确实支持重定位。但为了在没有 root 权限的情况下安装包,需要执行一些步骤。
以下内容摘自 linuxquestions.org:
设置私有 RPM 数据库
mkdir -p /home/username/local/lib/rpm
rpm --initdb --root /home/username/local --dbpath /home/username/local/lib/rpm
如果您不喜欢 ~/local/lib/rpm,您可以选择不同的子目录结构。
检查包依赖关系
rpm -ivh package.rpm
如果发现依赖项,则在安装程序包 RPM 之前安装依赖的 RPM。
最后安装包
rpm --root /home/username/local --dbpath /home/username/local/lib/rpm \
--relocate /usr=/home/username/local --nodeps -ivh package.rpm
要使用该软件包,您必须使用 LD_LIBRARY_PATH 来让加载器知道所需的共享库在哪里,并修改您的 PATH 以包含任何所需的脚本和可执行文件。
答案3
sudo
如果当前用户被允许使用,则授予命令 root 权限sudo
。
如果您已经拥有 root 权限,则除了记录之外,没有必要将其放在命令前面。sudo
如果您尚未sudo
安装并且已经以 root 身份运行,只需删除它:
yum install automake libtool flex bison pkgconfig gcc-c++
boost-devel libevent-devel zlib-devel python-devel ruby-devel
如果您还不是root用户并且该root
帐户已设置密码,请运行su
并使用您的root密码登录。
答案4
是的。假设您从某个网站上下载了此安装行,则通常会包含 sudo 行,以防用户自己没有这样做。但是,这通常是一个好主意,因为给程序你信任根访问权限允许它在全球范围内做出必要的更改。