Можно взглянуть на общее руководство для установки нескольких версий GCC.
Часть вашей проблемы, скорее всего, связана с тем, что путь поиска автоматически генерируется через NetworkManager:
search xyz.local
Эта строка действительно должна быть такой:
search xyz.local.
Период в конце критичен, так как он говорит DNS resolver остановиться. Поэтому она не будет делать таких вещей:
mysql.xyz.local.xyz.local
Вы можете подтвердить это, попробовав разрешить имена хостов вручную, временно добавив период самостоятельно.
$ nslookup mysql.xyz.local.
Для разрешения этого вам нужно изменить определение вашего домена на вашем DHCP-сервере так, чтобы он обслуживал домен как xyz.local.
.
Метод, используемый для разрешения имени хоста, управляется файлом /etc/nsswitch.conf
. Нотация NSS, расшифровывается как Name Service Switch, подробнее об этом можно прочитать в man-странице man nss
.
Вот строка из моего файла, которая управляет тем, как имена хостов разрешаются:
$ grep ^hosts /etc/nsswitch.conf
hosts: files dns mdns4_minimal
Она смотрит на мой локальный файл, /etc/hosts
, сначала, затем запрашивает DNS 2.
Проблема вызвана ключевым словом «mdns4_minimal» в файле nsswitch.conf. Это ключевое слово сообщает преобразователю, что все, что заканчивается на local, следует запрашивать с помощью mdns. Достаточно удалить это ключевое слово (и дополнительные параметры, обычно указываемые в квадратных скобках).
Более подробную информацию вы можете найти в моем сообщении
Причина, по которой nslookup решает все, заключается в том, что он не смотрит в nsswitch.conf, а напрямую использует /etc/resolv.conf. ping, с другой стороны, зависит от преобразователя, который сначала просматривает nsswitch.conf и разрешает имя, используя все, что там написано.