Установка Envoy из репозитория на различных операционных системах

Envoy — это высокопроизводительный прокси-сервер, который может использоваться для балансировки нагрузки, защиты приложений и обеспечения связи между микросервисами. В этой статье мы рассмотрим процесс установки Envoy из официального репозитория на различных операционных системах.

Установка на MacOS
Обновите список пакетов:
brew update

И установите Envoy:
brew install envoy

Установка на Debian
Для установки Envoy на Debian выполните следующие шаги:
sudo apt update
sudo apt install debian-keyring debian-archive-keyring apt-transport-https curl lsb-release

Затем добавьте ключ подписи репозитория GetEnvoy:
curl -sL 'https://deb.dl.getenvoy.io/public/gpg.8115BA8E629CC074.key' | sudo gpg --dearmor -o /usr/share/keyrings/getenvoy-keyring.gpg

Проверьте контрольную сумму ключа:
echo a077cb587a1b622e03aa4bf2f3689de14658a9497a9af2c427bba5f4cc3c4723 /usr/share/keyrings/getenvoy-keyring.gpg | sha256sum --check

Добавьте строку источника в файл «sources.list»:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/getenvoy-keyring.gpg] https://deb.dl.getenvoy.io/public/deb/debian $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/getenvoy.list

Обновите список пакетов:
sudo apt update

И установите Envoy:
sudo apt install getenvoy-envoy

Установка на CentOS
Для установки Envoy на CentOS выполните следующие шаги:
sudo yum install yum-utils

Затем импортируйте ключ подписи репозитория GetEnvoy:
sudo rpm --import 'https://rpm.dl.getenvoy.io/public/gpg.CF716AF503183491.key'

Создайте файл конфигурации репозитория:
curl -sL 'https://rpm.dl.getenvoy.io/public/config.rpm.txt?distro=el&codename=7' > /tmp/tetrate-getenvoy-rpm-stable.repo

Добавьте репозиторий в систему:
sudo yum-config-manager --add-repo '/tmp/tetrate-getenvoy-rpm-stable.repo'

Обновите список пакетов:
sudo yum makecache --disablerepo='*' --enablerepo='tetrate-getenvoy-rpm-stable'

И установите Envoy:
sudo yum install getenvoy-envoy

Установка на Ubuntu
Для установки Envoy на Ubuntu выполните следующие шаги:
sudo apt update
sudo apt install apt-transport-https gnupg2 curl lsb-release

Затем добавьте ключ подписи репозитория GetEnvoy:
curl -sL 'https://deb.dl.getenvoy.io/public/gpg.8115BA8E629CC074.key' | sudo gpg --dearmor -o /usr/share/keyrings/getenvoy-keyring.gpg

Проверьте контрольную сумму ключа:
echo a077cb587a1b622e03aa4bf2f3689de14658a9497a9af2c427bba5f4cc3c4723 /usr/share/keyrings/getenvoy-keyring.gpg | sha256sum --check

Добавьте строку источника в файл «sources.list»:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/getenvoy-keyring.gpg] https://deb.dl.getenvoy.io/public/deb/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/getenvoy.list

Обновите список пакетов:
sudo apt update

И установите Envoy:
sudo apt install -y getenvoy-envoy

Начальное конфигурирование Envoy
Создайте файл конфигурации:
touch /etc/envoy/envoy.yaml

И вставьте в него следующее содержание:
static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address: { address: 0.0.0.0, port_value: 80 }
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: ingress_http
          codec_type: AUTO
          route_config:
            virtual_hosts:
            - name: backend
              domains: ["*"]
              routes:
              - match: { prefix: "/" }
                route:
                  cluster: service_cluster
          http_filters:
          - name: envoy.filters.http.router

  clusters:
  - name: service_cluster
    connect_timeout: 0.25s
    type: LOGICAL_DNS
    lb_policy: ROUND_ROBIN
    dns_lookup_family: V4_ONLY
    load_assignment:
      cluster_name: service_cluster
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: service_host
                port_value: 80

Создание сервиса
Создайте файл конфигурации:
nano /etc/systemd/system/envoy.service

И вставьте в него содержимое:
[Unit]
Description=Envoy Proxy
Documentation=https://www.envoyproxy.io/
After=network-online.target

[Service]
User=root
Restart=on-failure
ExecStart=/usr/bin/envoy -c /etc/envoy/envoy.yaml
[Install]
WantedBy=multi-user.target

Запуск Envoy
Добавьте Envoy в запуск:
sudo systemctl enable envoy

И запустите сервис:
sudo systemctl start envoy

Проверьте что все работает:
sudo systemctl status envoy


Админ-интерфейс
Когда все будет готово, зайдите в админ-интерфейс в браузере по адресу:
http://127.0.0.1:9901/

Установка DirectX в Wine вручную. Зачем он там нужен и могут ли обойтись без него приложения

DirectX – это набор API, который позволяет разработчикам создавать и запускать графические и мультимедийные приложения на операционной системе Windows. Однако, если вы хотите использовать приложения, требующие DirectX, на других платформах, таких как Linux, вам может потребоваться установить DirectX через Wine.

Wine – это программный пакет, который позволяет запускать Windows-приложения на операционных системах, отличных от Windows. Он эмулирует Windows API, позволяя приложениям работать так, как будто они запущены на Windows.

В этой статье мы рассмотрим процесс установки DirectX в Wine вручную и обсудим, зачем он там нужен и могут ли обойтись без него приложения. Если честно, Wine уже содержит в себе DirectX, так что делайте его установку только в крайнем случае, если приложение начинает артачиться.

Зачем устанавливать DirectX в Wine?
Установка DirectX в Wine может быть необходима для запуска приложений, которые требуют использования функций DirectX. Это особенно актуально для игр, которые часто используют DirectX для обработки графики и звука. Без DirectX эти приложения могут не работать должным образом или вообще не запуститься.

Могут ли приложения обойтись без DirectX?
Некоторые приложения могут обойтись без DirectX, особенно если они разработаны с использованием других технологий, таких как OpenGL или Vulkan. Однако, если приложение было специально разработано для работы с DirectX, то оно, скорее всего, потребует его наличия для корректной работы.

Как установить DirectX в Wine вручную?
Процесс установки DirectX в Wine может немного отличаться в зависимости от версии Wine и вашей операционной системы. Ниже приведен общий алгоритм действий:

1. Сделайте резервную копию текущих настроек Wine. Это позволит вам восстановить их, если что-то пойдет не так.

2. Создайте стандартные настройки Wine с помощью команды «winecfg».

3. Скопируйте необходимые библиотеки DirectX (например, «mscoree.dll» и «streamci.dll») в директорию "~/.wine/drive_c/windows/system32/". Эти библиотеки можно найти в Windows через поиск.

4. Удалите некоторые файлы DirectX из той же директории, такие как «d3d8.dll», «d3d9.dll», «ddraw.dll», «dsound.dll», «dsound.vxd», «quartz.dll» и «dxdiagn.dll».

5. Откройте файл "~/.wine/user.reg" и добавьте в него следующие строки:
[Software\\Wine\\DllOverrides] 1196330736
"d3d8"="native"
"d3d9"="native"
"d3dim"="native"
"d3dx8"="native"
"d3dxof"="native"
"dciman32"="native"
"ddrawex"="native"
"devenum"="native"
"dinput"="native"
"dinput8"="native"
"dmband"="native"
"dmcompos"="native"
"dmime"="native"
"dmloader"="native"
"dmscript"="native"
"dmstyle"="native"
"dmsynth"="native"
"dmusic"="native"
"dplay"="native"
"dplayx"="native"
"dpnaddr"="native"
"dpnet"="native"
"dpnhpast"="native"
"dswave"="native"
"dxdiagn"="native"
"mscoree"="native"
"quartz"="native"
"streamci"="native"

6. Установите DirectX, используя стандартный дистрибутив для Windows.

7. Откройте конфигуратор Wine («winecfg»), перейдите на вкладку «Библиотеки» и выберите для библиотек «d3d8», «d3d9», «ddrawex», «dinput», «dinput8» режим загрузки «Встроенная (wine)».

8. Наконец, проведите тесты DirectX, перейдя в директорию "~/.wine/drive_c/windows/system32/" и выполнив команду «wine dxdiag.exe». Если приложение не запускается, попробуйте скопировать файлы «dxdiag.exe» и «dxdiagn.dll» в ту же директорию.

За что отвечают в Wine компоненты winhttp msxml3 msxml4 corefonts lucida tahoma vb6run mdac28 mfc42 jet40 native_oleaut32 и зачем их необходимо ставить вместе с .NET Framework 4.7

В этом посте я расскажу о том, какие компоненты включены в установщик Wine и почему они необходимы для работы приложений на базе .NET Framework 4.7.

Wine (Wine Is Not an Emulator) — это свободная реализация API Win32, предназначенная для запуска Windows-приложений на операционных системах Linux. Она позволяет запускать приложения Windows без необходимости использования виртуальной машины или эмулятора.

Компоненты, которые включаются в установщик Wine, представляют собой различные библиотеки и драйверы, необходимые для корректной работы приложений Windows на Linux. Давайте рассмотрим каждый компонент подробнее:

1. Winhttp — это набор библиотек для работы с HTTP и FTP протоколами. Он используется для загрузки файлов из Интернета и обеспечивает безопасную передачу данных.

2. Msxml3 и msxml4 — это версии Microsoft XML Core Services, которые предоставляют функциональность для обработки XML документов. Они используются многими приложениями для чтения и записи данных в формате XML.

3. Corefonts, lucida, tahoma — это шрифты, которые часто используются в приложениях Windows. Установка этих шрифтов позволяет приложениям отображать текст так, как он был задуман разработчиками.

4. Vb6run — это библиотека, которая предоставляет поддержку для Visual Basic 6.0 приложений. Она включает в себя компоненты, необходимые для выполнения кода на Visual Basic 6.0.

5. Mdac28 — это набор библиотек, который предоставляет функциональность для работы с базами данных Microsoft Access. Он включает в себя компоненты для создания, редактирования и управления данными в Access-базах.

6. Mfc42 — это библиотека, которая предоставляет поддержку для MFC (Microsoft Foundation Classes), фреймворка для разработки приложений Windows. Она включает в себя компоненты, необходимые для создания графического интерфейса пользователя и работы с различными функциями Windows.

7. Jet40 — это библиотека, которая предоставляет поддержку для JET Database Engine, встроенного механизма базы данных от Microsoft. Она включает в себя компоненты для работы с базами данных через JET Engine.

8. Native_oleaut32 — это библиотека, которая предоставляет поддержку для OLE Automation, технологии, позволяющей объектам взаимодействовать друг с другом. Она включает в себя компоненты, необходимые для выполнения сценариев автоматизации.

9. .NET Framework 4.7 — это платформа для разработки и запуска приложений на платформе Windows. Она включает в себя множество классов и библиотек, которые могут использоваться для создания различных типов приложений.

Все эти компоненты необходимы для того, чтобы приложения Windows могли работать корректно на Linux. Без них многие функции приложений могут не работать или работать неправильно. Поэтому установка всех этих компонентов вместе с .NET Framework 4.7 является важным шагом при настройке среды разработки или запуска приложений на Linux.

Установка Wine на EOL системы Debian 9 и 10

Wine – это программный продукт, позволяющий запускать приложения Windows на операционных системах Linux. В данной статье мы рассмотрим процесс установки Wine на устаревшие версии Debian 9 (Stretch) и Debian 10 (Buster), которые уже не поддерживаются официальными репозиториями.

Для Debian 9 добавляем в "/etc/apt/sources.list" строку репозитория Debian 11, не отключая 9:
deb http://deb.debian.org/debian/ bullseye main

Добавление 32-битной архитектуры для 64-битной системы
Первым шагом является добавление поддержки 32-битной архитектуры для 64-битной системы. Это необходимо для корректной работы некоторых приложений Windows. Выполните следующую команду:
sudo dpkg --add-architecture i386

Очистка системы
Далее очистим от старых пакетов систему:
sudo apt-get autoremove --purge -y

Установка ключа
Далее нам нужно скачать и установить ключ безопасности для подтверждения источника пакетов WineHQ. Создадим директорию для ключей:
sudo mkdir -pm755 /etc/apt/keyrings

Затем скачаем сам ключ:
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key

Импорт в sources.list
Теперь добавим источник пакетов WineHQ в файл «sources.list»:
deb [signed-by=/etc/apt/keyrings/winehq-archive.key] https://dl.winehq.org/wine-builds/debian/ bullseye main

Обновление пакетов
Перед установкой Wine обновим список пакетов:
sudo apt-get update

Установка Wine
И наконец, установим сам пакет Wine:
sudo apt-get install --install-recommends winehq-staging winetricks -y
sudo apt-get install cabextract p7zip unrar unzip wget zenity -y

Компоненты
После установки обязательно создаем 32-битный префикс и ставим компоненты как указано здесь. Для root'а ставить не обязательно, если только вы не собираетесь ставить приложение, которое будет требовать права администратора.

Окончание
После выполнения всех этих шагов, Wine будет установлен на вашей системе Debian 9 или 10. Обратите внимание, что использование устаревших версий операционной системы может привести к проблемам с безопасностью и совместимостью, поэтому рекомендуется обновить систему до последней поддерживаемой версии или рассмотреть возможность использования альтернативных методов запуска приложений Windows, таких как виртуальные машины или контейнеры.

Установка приложения с помощью bash и dialog на apt-like Linux (Debian, Ubuntu). Минусы и плюсы dialog

Bash — это оболочка командной строки в Unix и Unix-подобных операционных системах, таких как Linux. Она используется для выполнения команд и скриптования. Dialog — это утилита в Unix, которая позволяет создавать диалоговые окна в командной строке. В этой статье мы рассмотрим, как использовать bash и dialog для автоматизации установки приложений на apt-like Linux, таких как Debian и Ubuntu.

Dialog — это утилита командной строки, которая позволяет создавать диалоговые окна в текстовом режиме. Она может использоваться для отображения различных видов диалогов, таких как сообщения, вопросы, ввод текста, выбора из списка и т.д. Dialog обеспечивает простой способ взаимодействия с пользователем через командную строку.

Dialog может быть использован в скриптах bash для создания интерактивных установщиков приложений. Например, вы можете использовать dialog для отображения диалогового окна с предупреждением перед началом установки, запросом ввода данных от пользователя и отображением прогресса установки. Это позволяет создать удобный интерфейс для установки приложений, даже если вы работаете в командной строке. Однако, несмотря на свою популярность, у dialog есть свои минусы, которые стоит учитывать. Об этом поговорим ниже, после скрипта.

С помощью bash и dialog можно легко автоматизировать установку приложений на apt-like Linux. Вы можете написать скрипт bash, который будет выполнять установку нескольких пакетов с помощью apt-get и использовать dialog для отображения прогресса установки и запросов у пользователя. Это позволит создать удобный и интуитивно понятный интерфейс для установки приложений, который будет работать в командной строке.

Давайте рассмотрим код bash, который проверяет наличие dialog в системе, если его нет то устанавливает, затем устанавливает само приложение из скачанного по wget архива zip, затем вводя данные при помощи dialog, затем отображая процесс установки с помощью dialog.
#!/bin/bash

if ! command -v dialog &> /dev/null
then
    sudo apt-get update
    sudo apt-get install -y dialog
fi

wget https://example.com/dialog_app.zip
unzip dialog_app.zip
cd dialog_app
./configure
make
sudo make install

dialog --inputbox "Введите ваше имя:" 10 30 2> name.txt
name=$(cat name.txt)
dialog --infobox "Установка приложения $name..." 10 30
sleep 5
dialog --msgbox "Приложение $name успешно установлено!" 10 30

Минусы dialog
1. Ограниченные возможности визуального оформления. Пользовательский интерфейс, созданный с помощью dialog, ограничен по визуальным возможностям. В отличие от графических интерфейсов, здесь нет возможности использовать сложные элементы дизайна, что может быть недостатком для некоторых проектов.

2. Неудобство для новичков. Для новичков использование dialog может быть вызывать затруднения, так как требует знания специфических команд и параметров. Это может создавать преграду для тех, кто только начинает изучать Linux.

3. Ограниченный набор элементов интерфейса. Dialog предлагает ограниченный набор элементов интерфейса, таких как окна сообщений, диалоговые окна, списки и т.д. Это может быть недостатком для тех, кто нуждается в более сложных элементах интерфейса.

Плюсы dialog
1. Простота в использовании. Несмотря на свои минусы, dialog все же обладает простым и интуитивно понятным интерфейсом, который позволяет быстро создавать текстовые интерфейсы без необходимости изучать сложные инструменты.

2. Поддержка скриптования. Dialog поддерживает скриптование, что позволяет автоматизировать создание и управление интерфейсами. Это делает его удобным инструментом для разработчиков, которые хотят создавать интерактивные приложения в терминале.

3. Поддержка различных платформ. Dialog доступен на большинстве популярных дистрибутивов Linux, что позволяет использовать его на различных платформах без необходимости адаптации.

Установка и настройка Wine на РедОС

Сразу скажу так. На РедОС есть два способа установки Wine: обычный и RedWine. Второй способ выполняется автоматически.

На RedWine команды различаются только приставкой red.

Итак, сперва не подключая левые репозитории ставим все нужное.

Установка Wine

Сперва обновим систему.
sudo yum update -y
Если нет wget — доставляем, но на всякий пожарный лучше команду выполнить.
sudo yum -y install wget
Дальше ставим Wine и не только, весь дотнет тоже ставим.
sudo yum install wine winetricks dotnet-* -y
Теперь создадим 32-битный префикс.
WINEARCH=win32 WINEPREFIX='/home/'$(whoami)'/.wine' winecfg
Ставим компоненты для работы приложений — MSXML, MDAC, OLE, MFC и так далее. Компонент winhttp нужен для работы с сетью.
winetricks winhttp msxml3 msxml4 corefonts lucida tahoma vb6run mdac28 mfc42 jet40 native_oleaut32
Ставим дотнет целиком. Если произошел сбой на установке — сразу удалять папку wine и переставлять все, так как приложения просто не будут работать. По ходу установки будет установлен .NET 4.0, .NET 4.5, .NET 4.6.1, .NET 4.6.2, .NET 4.7.2.
winetricks --force dotnet472
А вот теперь самое главное. Нам надо поставить те же компоненты но для рута, чтобы можно было выполнять приложения с системными функциями.
Все почти так же как в начале но команды чуть-чуть отличаются.
sudo WINEARCH=win32 WINEPREFIX='/root/.wine' winecfg
sudo winetricks winhttp msxml3 msxml4 corefonts lucida tahoma vb6run mdac28 mfc42 jet40 native_oleaut32
sudo winetricks --force dotnet472
Как только поставите сможете от sudo выполнять все что угодно.

Установка Redwine

Вам должны будут дать уникальную запароленную ссылку на ресурс share.red-soft.ru.
Там вам надо скачать нужные бинарники (см. ниже).
Процесс установки
Дать права на исполнения для установщика:
chmod +x ./redwine-*.bin
RedOS 7.2
sudo ./redwine-7.0-ro7.2.bin
RedOS 7.3
sudo ./redwine-7.0-ro7.3.bin
Дальше ничего делать не надо. Без указания аргументов установится только Redwine без функционала подписи.

Описание дополнительных аргументов:
  • --crypt — Установка redwine-cprocsp и redwine-cades
  • --cprocsp 4 — Установка КриптоПро 4
  • --cprocsp 5 — Установка КриптоПро 5
  • --uninstall — Перед установкой удаление предыдущей установки redwine
  • Если указать --cprocsp то --crypt будет использоваться автоматически.

Microsoft SQL (опционально)

Подтягиваем SQL Server 2022. Для работы с ним используйте обычный DBeaver. Сперва загрузим репу.
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2022.repo

Установим сервер.
sudo yum install -y mssql-server
Настроим сервер.
sudo /opt/mssql/bin/mssql-conf setup
А теперь внимание. Я очень тупил на этом шаге. Нам нужно поставить верную виндовую кодировку на сервер обязательно — по дефолту стоит линуксовая Cyrillic_General_CS_AS. Поэтому делаем поочередно пока нет баз пользователей:
sudo systemctl stop mssql-server
sudo /opt/mssql/bin/mssql-conf set-collation
sudo systemctl start mssql-server
и указываем кодировку Cyrillic_General_CI_AS.

Не укажете — замаетесь с виндовыми приложениями. По дефолту на большинстве из них именно такая кодировка.

Вот и все. Wine на РедОС настроен.