Я - администратор двух серверов человечности. На одном из них, когда я пытаюсь выполнить команду (например, irb1.9.1
) от пакета, который не установлен, я получаю следующее сообщение:
The program 'irb1.9.1' is currently not installed. You can install it by typing:
sudo apt-get install ruby1.9.1
На другом сервере я получаю следующий ответ:
The program 'irb1.9.1' is currently not installed. To run 'irb1.9.1' please ask your administrator to install the package 'ruby1.9.1'
Я могу sudo
на обоих серверах, таким образом, я не понимаю, как первый знает, что я могу установить пакет сам и показываю мне команду для выполнения, в то время как второе не делает.
Куда различие прибывает из и как я могу заставить второй сервер давать мне команду как первый сервер?
Редактирование для ответа на комментарий Braiam, apt-cache policy
возвратите то же на обоих серверах:
$ apt-cache policy command-not-found
command-not-found:
Installed: 0.3ubuntu7.1
Candidate: 0.3ubuntu7.1
Version table:
*** 0.3ubuntu7.1 0
500 http://dk.archive.ubuntu.com/ubuntu/ raring-updates/main amd64 Packages
100 /var/lib/dpkg/status
0.3ubuntu7 0
500 http://dk.archive.ubuntu.com/ubuntu/ raring/main amd64 Packages
Исследуя тему немного больше, я нашел это command-not-found
использовал /usr/lib/python2.7/dist-packages/CommandNotFound/CommandNotFound.py
сценарий, который содержит следующую строку:
self.user_can_sudo = grp.getgrnam("sudo")[2] in posix.getgroups() or grp.getgrnam("admin")[2] in posix.getgroups()
Так в основном любой в sudo
или admin
группы рассмотрят как администратора. Одна из машин была настроена для использования wheel
группа вместо этого, таким образом, visudo
показал бы:
%wheel ALL=(ALL) ALL
На сервере я не был членом sudo
или admin
группы, таким образом, command-not-found
не знал бы, что я мог выполниться apt-get
команды с sudo
. После добавления меня к sudo
группа также, я теперь добираюсь, Кв. - заставляют команду выполняться распечатанный на терминале.
Разница, вероятно, возникает из-за того, что вы используете разные версии bash или разные оболочки. Используйте:
echo $SHELL
bash --version
, чтобы проверить текущую оболочку и / или текущую версию bash.