sudo: apt-get: command not found

sudo: apt-get: command not found

https://blog.csdn.net/zhengzhaoyang122/article/details/136132952

问题
Linux Red Hat 执行sudo卸载nginx时,出现command not found错误

[root@iZuf65h6i43ltlzhqolumyZ local]# sudo apt-get remove nginx
sudo: apt-get: command not found
1
2
解决
【1】通过/etc/sudoers.d命令查看文件是否存在;

[root@iZuf65h6i43ltlzhqolumyZ local]# find /etc/sudoers.d
/etc/sudoers.d
1
2
如果返回No such file or directory,就说明你的系统没有安装sudo,下面是安装命令 :

[root@iZuf65h6i43ltlzhqolumyZ local]# yum install sudo
1
如果提示E: Unable to locate package sudo的错误,先执行下面的命令:

[root@iZuf65h6i43ltlzhqolumyZ local]# apt-get update
1
再执行sudo apt-get install即可。

【2】如果/etc/sudoers.d文件存在则说明已经安装了sudo,但没有配置环境。

当你使用sudo去执行一个程序时,处于安全的考虑,这个程序将在一个新的、最小化的环境中执行,也就是说,诸如PATH这样的环境变量,在sudo命令下已经被重置成默认状态了。所以当一个刚初始化的PATH变量中不包含你所要运行的程序所在的目录,用sudo去执行,你就会得到command not found的错误提示。

要想改变PATH在sudo会话中的初始值,使用以下命令打开/etc/sudoers文件,

[root@iZuf65h6i43ltlzhqolumyZ local]# vim /etc/sudoers
1
找到secure_path一行,当你执行sudo命令时,secure_path中包含的路径将被当做默认PATH变量使用。添加所需要的路径(如/usr/local)到secure_path下:

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
1
如果提示文件只读,可以修改文件的状态后再修改:

[root@iZuf65h6i43ltlzhqolumyZ etc]# chmod u+w sudoers
1
如果还未解决
应该是环境变量导致的。使用env |grep PATH和sudo env |grep PATH查看两者变量是否一致。

[root@iZuf65h6i43ltlzhqolumyZ local]# sudo env | grep PATH
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local
[root@iZuf65h6i43ltlzhqolumyZ local]# env | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/lib/nodejs/node-v18.12.1-linux-x64/bin
1
2
3
4
如果不一致,修改/etc/sudoers文件中的env_reset参数:在env_reset前加!号

Defaults    !env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
1
2
3
4
5
6
修改.bashrc文件

[root@iZuf65h6i43ltlzhqolumyZ local]# vim /root/.bashrc
1
在该文件加入以下配置:alias sudo='sudo env PATH=$PATH'

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
alias sudo='sudo env PATH=$PATH'
1
2
3
4
5
6
7
8
9
10
11
12
13
重新加载配置文件

source ~/.bashrc
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/zhengzhaoyang122/article/details/136132952

posted @ 2024-04-28 11:28  _海阔天空  阅读(35)  评论(0编辑  收藏  举报