Это больше не работает, если это когда-либо было:
host all all * md5Для этого возможны следующие возможные строки:
[d2 ] host all all * md5 host all all :: 0/0 md5 # ipv6 range host all all all md5 #all iphost all all 0.0.0.0/0 md5 # ipv4 range [ ! d5]
Правильная команда для установки g++ version 5.x:
sudo apt-get install g++-5
Это установит g++ версию 5.3 на xenial, которая является текущим значением по умолчанию (поэтому apt-get install g++ устанавливает это также, но это изменится в будущем). На самом деле, нет публичной версии 5.0 GCC. Другие релизы g++ упаковываются, например. g++-4.9 или g++-6, которые могут быть установлены таким же образом.
Если вам когда-либо понадобится установить конкретную (существующую) версию g++, которая не упакована для вашей системы, не будет публичного выпуска 5.0 .
Давайте сломаем это.
Прежде всего, несколько заметок о том, как apt-get install (и большинство других apt-get аргументов тоже):
Вы можете ввести несколько пакетов имена:sudo apt-get install foobar spamegg
Имена пакетов на самом деле являются расширенными регулярными выражениями (ERE) (проверьте man 7 regex), поэтому имя пакета foo.bar означает любое имя пакета, которое имеет подстроку, которая начинается с foo и заканчивается на bar с любым символом между foo и bar. Вероятно, f.*r означает любое имя пакета, которое содержит подстроку, которая имеет f и r с любым количеством символов, т.е. между ними. Чтобы выполнить полное сопоставление имени пакета, используйте токены начала и конца, например. [F19]. Если вы хотите, чтобы любой токен Regex обрабатывался буквально, вам нужно избежать маркера с помощью \, например. для обработки foo.bar в буквальном смысле вам нужно: sudo apt-get install 'foo\.bar'
Здесь одиночное цитирование состоит в том, чтобы предотвратить интерпретацию оболочки шаблона в виде шаблона глобуса, не обязательно в этом случае, но потребуется, например. для шаблона foo.*bar, если у вас есть файл в текущем каталоге с именем, например. [F23]. При рассмотрении вопроса о пакете есть улов. Если есть какой-либо пакет, соответствующий шаблону, шаблон будет обрабатываться буквально, и интерпретация Regex не будет выполнена. Например, для шаблона пакета g++ он будет соответствовать пакету g++ буквально независимо от токена Regex +. Если в определенных репозиториях не было пакета с именем g++, он будет рассматриваться как шаблон ERE. Теперь вы дали команду:
sudo apt-get install g++ 5.0
Это означает:
Вы можете ввести несколько имен пакетов:sudo apt-get install foobar spamegg
Вы можете ввести несколько имен пакетов:
Имена пакетов на самом деле являются шаблонами Extended Regular Expression (ERE) (Проверить man 7 regex), поэтому имя пакета foo.bar означает любое имя пакета, которое имеет подстрока, начинающаяся с foo и заканчивающаяся bar любым символом между foo и bar. Вероятно, f.*r означает любое имя пакета, которое содержит подстроку, которая имеет f и r с любым количеством символов, т.е. между ними. Чтобы выполнить полное сопоставление имени пакета, используйте токены начала и конца, например. [F19]. Если вы хотите, чтобы любой токен Regex обрабатывался буквально, вам нужно избежать маркера с помощью \, например. для обработки foo.bar в буквальном смысле вам нужно:sudo apt-get install 'foo\.bar'
Здесь одиночное цитирование состоит в том, чтобы предотвратить интерпретацию оболочки шаблона в виде шаблона глобуса, не обязательно в этом случае, но потребуется, например. для шаблона foo.*bar, если у вас есть файл в текущем каталоге с именем, например. foo.bar. g++ соответствует литеральному мета-пакету g++, как указано выше
sudo apt-get install g++-5
Предположительно, вы хотите установить версию g++ [ f37], поэтому сделало бы следующее (уже упомянутое в этом ответе); Мета-пакет g++-5 будет ссылаться на последний доступный небольшой выпущенный пакет g++ версии 5:
apt-cache search 'g\+\+-[0-9]+'
Для поиска любых пакетов в настроенных репозиториях используйте apt-cache (использует ERE, например apt-get):
apt-cache search g++ | less
Если вы не хотите использовать Regex-ify, используйте less для прокрутки вниз по более крупному списку:
sudo apt-get install --dry-run foobar