«Установка Go в Debian 9» и «Exim4»: разница между страницами

Материал из support.qbpro.ru
(Различия между страницами)
imported>Vix
Нет описания правки
 
imported>Vix
Нет описания правки
 
Строка 1: Строка 1:
[https://golang.org/ Go], или golang – это современный язык программирования, разработанный в Google. Он предлагает надежный набор библиотек и применяет минималистичный подход к разработке, благодаря чему становится все более популярным и чаще используется для создания надежного и производительного ПО.
'''Установка и настройка'''


В этом мануале вы узнаете, как установить последнюю версию Go на сервер Debian 9, а также создать простое приложение Hello World.
Прежде всего обновите локальный список пакетов с помощью вашего пакетного менеджера, например на Ubuntu и Debian это можно сделать с помощью apt:
apt-get update


'''Требования'''
Для установки выполните команду:
apt-get install exim4


Для работы вам понадобится сервер '''Debian 9''', настроенный по мануалу Начальная настройка сервера '''Debian 9'''.
Примечание: если вам необходимо использовать ACL и другие расширенные функции, то установите exim4-daemon-heavy:
apt-get install exim4-daemon-heavy


'''1: Загрузка Go'''
Чтобы перейти к настройке, выполните команду:
dpkg-reconfigure exim4-config


Для начала установите '''curl''':
Нажмите Ok для начала настройки.
'''РЕШЕНИЕ ПРОБЛЕМ'''
<hr>
* '''defer (-53): retry time not reached for any host'''
Повреждены ваши exim db Это возможно связанно с недоступостью почтового сервера какой-то время.


sudo apt install curl
'''решение:'''


Загрузите последнюю версию Go с официального сайта проекта. Здесь вы найдете URL на архив текущей стабильной версии. Обязательно скопируйте ссылку на последнюю версию для 64-битной архитектуры.
cd /var/spool/exim/db
rm -f retry retry.lockfile
rm -f wait-remote_smtp wait-remote_smtp.lockfile
service exim restart


В домашнем каталоге запустите '''curl''' для загрузки тарбола:
В дальнейшим имеет смысл: внести изменения в /etc/exim/exim.conf
в раздел


  curl -O https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz
  begin retry
*                      rcpt_451    F,1h,15m
*                      refused    F,1h,2m
*                      timeout_connect    F,2h,2m; F,6h,1h; F,4d,6h
*                      *          F,2h,2m; G,16h,1h,1.5; F,4d,6h


Хотя архив загружен с надежного источника, рекомендуем все же проверить оригинальность и целостность полученных пакетов. Так вы будете уверены, что файл никак не пострадал во время установки.
также обратите внимание на запуск с какой опцией он стартует: -q5m
* [https://www.linuxshop.ru/forum/f7/t31431--resheno-remote-smtp-defer-53-retry-time-not-reached-for-any-host-exchange-exim.html взято тут]


Проверьте целостность архива с помощью '''sha256sum''':
* Для решения проблемы с ssl в exim4.conf.template изменить:
...
REMOTE_SMTP_SMARTHOST_TLS_VERIFY_HOSTS = *


sha256sum go1.12.5.linux-amd64.tar.gz
на
  go1.12.5.linux-amd64.tar.gz
  ...
  aea86e3c73495f205929cfebba0d63f1382c8ac59be081b6351681415f4063cf  go1.12.5.linux-amd64.tar.gz
  REMOTE_SMTP_SMARTHOST_TLS_VERIFY_HOSTS = !*


Убедитесь, что хэш соответствует значению на странице загрузки.
* Если нужно жестко указать порт smtp, то:
 
  ...
'''2: Установка Go'''
  dc_smarthost='mail.myhost.ru::25'
 
Затем используйте tar для извлечения архива. Опция x распакует архив, v настраивает расширенный вывод (список извлеченных файлов), а f определяет имя файла:
 
  tar xvf go1.12.5.linux-amd64.tar.gz
 
Теперь в домашнем каталоге должен быть новый каталог по имени go. Передайте права на каталог go пользователю и группе root и переместите его в /usr/local:
 
sudo chown -R root:root ./go
  sudo mv go /usr/local
 
'''Примечание:''' Официально рекомендуется использовать каталог /usr/local/go, однако в зависимости от ситуации вам может потребоваться другое расположение.
 
Теперь нужно указать несколько путей Go, чтобы упростить работу.
 
'''3: Настройка путей Go'''
 
На этом этапе нужно установить пути в вашей среде.
 
Сначала установите корневой каталог '''Go''', где нужно искать его файлы.
 
nano ~/.profile
 
В конец файла добавьте:
  ...
  ...
export GOROOT=/usr/local/share/go
export GOPATH=$HOME/Projects/Go/src
export GOBIN=$HOME/Projects/Go/bin
export PATH
Если вы выбрали другое расположение для установки Go, укажите его здесь. В этом примере показаны команды, которые сработают, если Go был установлен в домашнем каталоге:
export GOROOT=$HOME/go
export GOPATH=$HOME/src
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
Сохраните и закройте файл. Обновите настройки:
source ~/.profile
'''4: Тестирование установки'''
Теперь нужно убедиться, что установка '''Go''' прошла успешно.
Создайте новый каталог для рабочего пространства Go, где он сможет выполнять сборку файлов.
mkdir $HOME/Projects/Go/src
После этого создайте иерархию каталогов с помощью следующей команды, чтобы поместить здесь тестовый файл. К примеру, структура каталогов может выглядеть так:
mkdir -p ~/src/my_project/hello
Теперь создайте файл для приложения Hello World:
nano ~/src/my_project/hello/hello.go
Вставьте в него следующий код. Он использует основные пакеты Go, импортирует форматированный компонент IO и устанавливает функцию, которая выводит «Hello, World» при запуске.
package main
  import "fmt"
  func main() {
  fmt.Printf("Hello, World!\n")
}
Эта программа будет выводить фразу «Hello, World», если она успешно работает. Это позволит подтвердить, что программы Go компилируются правильно.
Сохраните и закройте этот файл, затем скомпилируйте его, вызвав команду Go install:
go install my_project/hello
Запустите файл:
hello
Если команда вернула «hello, world», установка Go прошла успешно. Чтобы узнать, где установлен скомпилированный файл hello, используйте команду:
which hello
$HOME/Projects/Go/bin/hello
'''Заключение'''
Установив и настроив последнюю версию Go, вы можете приступать к разработке своего проекта.


'''ИСТОЧНИК:'''
'''ИСТОЧНИКИ:'''
<hr>
<hr>
* [https://www.8host.com/blog/ustanovka-go-v-debian-9/ Установка Go в Debian 9]
* [https://qna.habr.com/q/146009 Exim и внешний SMTP сервер, как заставить ходить почту?]
* [https://1cloud.ru/help/linux/nastrojka-exim4 Настройка EXIM4 для отправки почтовых сообщений в Linux]
* [https://serverspace.by/support/help/nastroika-exim-4-na-ubuntu/ Ubuntu. Настройка Exim4]

Версия от 19:39, 20 июля 2022

Установка и настройка

Прежде всего обновите локальный список пакетов с помощью вашего пакетного менеджера, например на Ubuntu и Debian это можно сделать с помощью apt:

apt-get update

Для установки выполните команду:

apt-get install exim4

Примечание: если вам необходимо использовать ACL и другие расширенные функции, то установите exim4-daemon-heavy:

apt-get install exim4-daemon-heavy

Чтобы перейти к настройке, выполните команду:

dpkg-reconfigure exim4-config

Нажмите Ok для начала настройки. РЕШЕНИЕ ПРОБЛЕМ


  • defer (-53): retry time not reached for any host

Повреждены ваши exim db Это возможно связанно с недоступостью почтового сервера какой-то время.

решение:

cd /var/spool/exim/db
rm -f retry retry.lockfile
rm -f wait-remote_smtp wait-remote_smtp.lockfile
service exim restart

В дальнейшим имеет смысл: внести изменения в /etc/exim/exim.conf в раздел

begin retry
*                      rcpt_451    F,1h,15m
*                      refused     F,1h,2m
*                      timeout_connect    F,2h,2m; F,6h,1h; F,4d,6h
*                      *           F,2h,2m; G,16h,1h,1.5; F,4d,6h

также обратите внимание на запуск с какой опцией он стартует: -q5m

  • Для решения проблемы с ssl в exim4.conf.template изменить:
...
REMOTE_SMTP_SMARTHOST_TLS_VERIFY_HOSTS = *

на

...
REMOTE_SMTP_SMARTHOST_TLS_VERIFY_HOSTS = !*
  • Если нужно жестко указать порт smtp, то:
...
dc_smarthost='mail.myhost.ru::25'
...

ИСТОЧНИКИ: