TGViewer
Сочный DevOps Сочный DevOps @andtree_sec · 420 subscribers
Post #130 47
Сборка deb пакета openssl-3.3.1

Понадобилась данная версия на одном из проектов. В репозиториях под 24.04 ubuntu ее нет. Что ж, соберем руками и сделаем .deb пакет.
Установка нужных зависимостей:
sudo apt update
sudo apt install zlib1g-dev build-essential checkinstall fakeroot dpkg-dev devscripts wget vim


Скачиваем нужную версию openssl:
wget https://www.openssl.org/source/openssl-3.3.1.tar.gz
tar -xzf openssl-3.3.1.tar.gz
cd openssl-3.3.1


Конфигурим и собираем. Ставить будем в отдельную директорию, иначе проблемы с системными зависимостями замучают:
./config --prefix=/opt/openssl-3.3.1 \
--openssldir=/opt/openssl-3.3.1/ssl \
shared zlib
make


Установка во временный каталог для создания пакета:
mkdir -p ../openssl-package/DEBIAN
make DESTDIR=$(pwd)/../openssl-package install_sw


DESTDIR указывает на временный каталог, куда будут установлены файлы для последующей упаковки.

Создадим файл для управления пакетов в ../openssl-package/DEBIAN/control со следующим содержимом:
Package: openssl
Version: 3.3.1-1
Section: utils
Priority: optional
Architecture: amd64
Maintainer: Ваше Имя <you@example.com>
Description: OpenSSL 3.3.1 custom build installed in /opt
OpenSSL is a robust, commercial-grade, full-featured Open Source Toolkit for the TLS and SSL protocols.


Собираем пакет:
cd ..
dpkg-deb --build openssl-package openssl_3.3.1-1_amd64.deb


Устанавливаем собранный пакет:
dpkg -i openssl_3.3.1-1_amd64.deb


Так как ставили мы все по не стандартным путям, нужно указать это системе:
echo 'export PATH=/opt/openssl-3.3.1/bin:$PATH' | tee /etc/profile.d/openssl.sh
echo '/opt/openssl-3.3.1/lib64' | tee /etc/ld.so.conf.d/openssl.conf
ldconfig
echo 'export PKG_CONFIG_PATH=/opt/openssl-3.3.1/lib64/pkgconfig:$PKG_CONFIG_PATH' | tee -a /etc/profile.d/openssl.sh
source /etc/profile.d/openssl.sh


Проверяем:
root@86f5719b0a02:/# which openssl
/opt/openssl-3.3.1/bin/openssl
root@86f5719b0a02:/# openssl version
OpenSSL 3.3.1 4 Jun 2024 (Library: OpenSSL 3.3.1 4 Jun 2024)


Если пакет потом планируется ставить при сборке какого-либо контейнера, то в Dockerfile лучше сделать вот так для настройке путей:
ENV PATH="/opt/openssl-3.3.1/bin:${PATH}"
ENV LD_LIBRARY_PATH="/opt/openssl-3.3.1/lib64:${LD_LIBRARY_PATH}"
ENV PKG_CONFIG_PATH="/opt/openssl-3.3.1/lib64/pkgconfig:${PKG_CONFIG_PATH}"
RUN echo "/opt/openssl-3.3.1/lib64" > /etc/ld.so.conf.d/openssl.conf && \
ldconfig


#linux
More from @andtree_sec
  1. Sep 7, 2026Давненько не было сообщений. Скорее всего в будущем они уйдут в telegraf, который я еще не…
  2. Jul 6, 2026Последнее время на работе часто приходится работать с apache flink и даже что-то писать на…
  3. Jun 4, 2026Немножко про молекула тесты... У нас принято использовать в переменных lookup плагин для д…
  4. May 20, 2026Очередной небольшой проект. Веб-приложение, которое агрегирует через стандартный механиз g…
  5. May 15, 2026Включаем профилирование в ansible Профилирование, это вывод даты, времени запуска и итогов…
  6. Apr 17, 2026Так выглядит общий dashbord работы с инцидентами.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →