Make install astra linux

Собираем Nginx из исходного кода в Astra Linux с поддержкой OpenSSL 3.0.3

Доступной версией Nginx в Astra Linux является версия 1.14.1 , но вам, возможно, вам может потребоваться свежая версия, на момент написания статьи это 1.20.2 . В репозитории Astra Linux находится на данный момент немного устаревшая версия библиотеки libssl-dev , версии 1.1.1k . Мы будем сразу использовать новую версию ветки OpenSSL 3 (3.0.3) , она будет поддерживаться до 7 сентября 2026 . К тому же у вас могут возникнуть проблемы со сборкой последней версии Nginx при использовании OpenSSL 1.1.1k . Сегодня мы рассмотрим сборку из исходного кода web-сервера Nginx на Astra Linux с поддержкой OpenSSL 3.0.3 .

Установка

sudo apt update sudo apt upgrade sudo apt install build-essential git perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev zlib1g-dev libssl1.0-dev libpcre2-dev libpcre2-posix0 mercurial wget libpcre3-dev
cd ~ hg clone http://hg.nginx.org/nginx -r stable-1.20 ~/nginx

Для сборки нам потребуется свежая версия OpenSSL так как с версиями ветки 1 у меня возникли проблемы со сборкой Nginx .

Загрузка исходного кода OpenSSL 3.0.3

cd ~/nginx wget --no-check-certificate https://www.openssl.org/source/openssl-3.0.3.tar.gz
echo 'ee0078adcef1de5f003c62c80cc96527721609c6f3bb42b7795df31f8b558c0b openssl-3.0.3.tar.gz' | tee openssl-3.0.3.tar.gz.sha256 sha256sum --check openssl-3.0.3.tar.gz.sha256 openssl-3.0.3.tar.gz: ЦЕЛ 

Конфигурирование и сборка nginx

./auto/configure \ --prefix=/etc/nginx \ --sbin-path=/usr/sbin/nginx \ --modules-path=/usr/lib/nginx/modules \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --pid-path=/var/run/nginx.pid \ --lock-path=/var/run/nginx.lock \ --builddir=nginx-astra-linux \ --with-select_module \ --with-poll_module \ --with-threads \ --with-file-aio \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_xslt_module=dynamic \ --with-http_image_filter_module=dynamic \ --with-http_geoip_module=dynamic \ --with-http_sub_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_auth_request_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_degradation_module \ --with-http_slice_module \ --with-http_stub_status_module \ --with-http_perl_module=dynamic \ --with-http_ssl_module \ --with-pcre \ --with-pcre-jit \ --with-openssl=./openssl-3.0.3
sed -e "s|%%PREFIX%%|/etc/nginx|" \ -e "s|%%PID_PATH%%|/var/run/nginx.pid|" \ -e "s|%%CONF_PATH%%|/etc/nginx/nginx.conf|" \ -e "s|%%ERROR_LOG_PATH%%|/var/log/nginx/error.log|" \ < docs/man/nginx.8 >nginx-astra-linux/nginx.8 make[1]: выход из каталога «/home/user/nginx»
sudo nginx -v nginx version: nginx/1.20.2
sudo nginx -V nginx version: nginx/1.20.2 built by gcc 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) built with OpenSSL 3.0.3 3 May 2022 TLS SNI support enabled configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --builddir=nginx-astra-linux --with-select_module --with-poll_module --with-threads --with-file-aio --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-http_ssl_module --with-pcre --with-pcre-jit --with-openssl=~/openssl-3.0.3

Запускаем nginx как службу

sudo mcedit /lib/systemd/system/nginx.service
[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/run/nginx.pid ExecStartPre=/usr/sbin/nginx -t ExecStart=/usr/sbin/nginx ExecReload=/usr/sbin/nginx -s reload ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
sudo systemctl enable nginx sudo systemctl daemon-reload
sudo systemctl start nginx

Заключение

Сегодня мы рассмотрели сборку из исходного кода web-сервера nginx с поддержкой последней версии openssl 3.0.3 . Установили требуемые пакеты Загрузили исходный код Nginx и Openssl . Сконфигурировали и произвели сборку nginx Установили web-сервер и проверили версию и его конфигурацию. Запустили сервер как службу. Проверили загрузку тестовой страницы.

Читайте также:  Рекурсивное удаление папки linux

Источник

Смоленск 1.6, отсутствует команда make

Даже то, что скачано с офф сайта и установлено — это нарушение политики дистрибутива ?
Чем отличается сборка CE от SE?
То, что скачивается с офф сайта — это под 64- bit, Есть ли дистрибутив под 32-bit? (не смог поставить на ноуте)
С трудом откомпилировал программу. Пришлось еще кучу всего ставить с диска. Причем вставлять то первый, то второй диск.

Есть ли дистрибутив, где уже установлены apt, make, gcc, libx11-dev, libxrandr-dev, libxxf86vm-dev и прочее?

Olej

New member

То, что скачивается с офф сайта — это под 64- bit, Есть ли дистрибутив под 32-bit? (не смог поставить на ноуте)

Нет. Только 64 бит.
Редкий ноутбук на сегодня не поддерживает 64 бит. Год 2010? На паровом двигателе?

С трудом откомпилировал программу. Пришлось еще кучу всего ставить с диска. Причем вставлять то первый, то второй диск.
Есть ли дистрибутив, где уже установлены apt, make, gcc, libx11-dev, libxrandr-dev, libxxf86vm-dev и прочее?

Это политика, идеология всех Linux: устанавливается некоторый минимум, всё остальное вы легко доустанавливаете из стандартного репозитория дистрибутива.
Сравните и оцените как это отличается от идеологии и привычек, выработанных в Windows: всё (как решили в Micrisift) интегрировано в систему, а всё остальное воруем где попало и что придётся, и устанавливаем на свой страх и риск.
Почувствуйте разницу!

Источник

Не найдена команда make в Linux

Утилита make в Linux используется для сборки и компиляции программ из исходных файлов. Инструкции о компиляции утилита берет из файла makefile. В некоторых дистрибутивах Linux утилита make не установлена по умолчанию (например, в Linux CentOS 8), поэтому при запуске команды сборки, вы увидеть ошибку:

bash: make: command not found

make: command not found

bash: /usr/bin/make: No such file or directory

В консоли Ubuntu появляется уведомление:

The program 'make' is currently not installed. You can install it by typing: sudo apt install make

Проверьте, что команда make установлена и путь к ней есть в PATH

В первую очередь проверьте, что команда make установлена в вашем дистрибутиве Linux и путь к ее директории указан в переменной окружения PATH.В большинстве случае файл make должен находится в директории /usr/bin или /usr/local/bin. Проверьте, есть ли исполняемый бинарный файл make в этих каталогах:

Читайте также:  Linux cores and threads

Если вы нашли исполняемый файл make в этой директории, проверьте что вы можете запустить его с абсолютным путем:

GNU Make 3.82 Built for x86_64-redhat-linux-gnu Copyright (C) 2010 Free Software Foundation, Inc.

команда make /usr/bin в linux

Затем проверьте, что путь к директории с файлом make указан в переменной окружения PATH:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

пути в переменной окружения path

В нашем примере путь /usr/bin содержится в переменной окружения PATH. Чтобы добавить в PATH новую директорию, используйте команду:

Чтобы сделать это изменение постоянным для текущего пользователя, отредактируйте файл ~/.bashrc:

export PATH=$PATH:/path_to/dir

Как установить команду make в различных ОС?

Если утилита действительно отсутствует на вашем компьютере, ниже мы покажем установить команду make в разных версиях Linux.

В Fedora, Oracle/Rocky Linux, CentOS, Fedora и RHEL утилита make можно установить отдельно с помощью команды:

установка команды make в Linux

Или в составе группы пакетов Development tools (потребуется около 500 Мб на диске).

# dnf groupinstall «Development tools» (в RHEL/CentOS 8)

или

# yum groupinstall «Development tools» (в предыдущих версиях RPM дистрибутивов Linux)

Если make уже установлен, но не работает, можете переустановить его:

В deb-based дистрибутивах, таких Ubuntu, Debian, Raspbian, Kali Linux можно установить пакет make с помощью команд:

Также команда make содержится в метапакете build-essential. Для его установки выполните:

# apt-get install build-essential

Для переустановки пакета make, выполните:

# apt-get install —reinstall make

# sudo dpkg-reconfigure make

# apt-get remove make
# apt-get install make

В дистрибутивах на основе Arch (Arch Linux, Manjaro) утилиту make можно установить отдельно:

$ sudo pacman –Syu
$ sudo pacman -S make

Или вместе с пакетом base-devel:

Для автоматической установки команды make и средств разработки в Docker контейнере можно добавить в docker файл инструкцию:

RUN apt-get install -y build-essential

В Windows можно установить команду make с помощью менеджера пакета Chocolatey. Установите choco (если не установлен):

Читайте также:  10 как можно осуществить восстановление gpt разделов в случае сбоев linux

PS> Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString(‘https://community.chocolatey.org/install.ps1’))

Затем можете установить make в Windows:

Для сборки из исходников также используется команда CMake. Если она не установлена, появится ошибка cmake command not found.

Источник

Оцените статью
Adblock
detector