2019独角兽企业重金招聘Python工程师标准>>>
解决办法
1.编辑/etc/sudoers文件,把Defaults env_reset改成Defaults ! env_reset
2.编辑.bashrc,最后添加alias sudo='sudo env PATH=$PATH'
有些技术真的很麻烦,但却有很长的生命,虽然学习的时候会遇到很多问题,但是在这些上面花时间是值得的。
下面是我装 texlive 2012的时候遇到的一些问题。还有关于Linux环境变量的一些设置问题
我还要说有些东西真的很麻烦,但是却有很多人为它着迷。有些软件已经生长为一种系统。这个系统像有生命的生物一样在不断的生长。对于明白他的人,他是那样的善解人意,对于不理解他的人他像一架精巧的难以驾驽的的机器。我所知道的这些系统有, linux,tex,emacs,drupal等等
在linux mint 13上装最新版本的texlive 2012,就不能用 apt-get install,因为太新了还没有加到软件仓库里,只能用官网上面提供的安装包安装了,装完后,可以用 tlmgr -gui对 tex的各种宏包进行管理。
手动添加texlive的各种程序到 PATH 环境变量下,就可以在终端执行 tex xelatex等命令了,当然了程序还让你添加man目录和info目录到 MANPATH和INFOPATH下
只因我将texlive装在了 /usr/local/texlive这个默认的文件夹下,所以进行宏包管理的时候,前面就必须用加上"sudo"才能对那个文件夹进行写操作(当然了和也可以为这个目录添加写权限),但是当运行 sudo tlmgr -gui命令时却提示“找不到此命令”,这时大部分人都会一脸的迷惑,不对呀我已经将
bin/i386-linux这个路径添加到PATH环境变量里了呀。用echo $PATH输出可以看见呀,单独运行 tlmgr命令也是可以的呀。
不知道有多少人遇到这种 加上 sudo 找不命令的情况,怎么办呢,谢天谢天我们有google,百度不知道的google一定知道。
很多人就可以病急乱投医了,一会在 /etc/profile修改修改,一会在/etc/environment修改,~/.bashrc 修改了好多地方还是不行。网上也有些人是瞎指挥,帮倒忙。出现这种情况就是因为对linux了解不深的原因。不过网上总是有热心的高人的。
其实出现这种情况的原因,主要是因为当 sudo以管理权限执行命令的时候,linux将PATH环境变量进行了重置,当然这主要是因为系统安全的考虑,以防用户执行可引起灾难性的程序。
这个配置信息存储在了/etc/sudoers这个文件是,当指行sudo命令的时候系统寻找的是 secure_path下的目录,所有在 /etc/profile ~/.bashrc下对PATH做的配置都会被忽略。所以就出现加上 sudo xxx 找不到命令的情况,解决办法用很多种了,可以将要执行sudo的命令软链接到 secure_path的目录下,或者修改 secure_path变量。