Как установить python3 со всеми его инструментами на оффлайн-машине Redhat RHEL7

Вопрос или проблема

У меня есть проект Django, который будет установлен на сервере RHEL 7 без доступа к интернету. Мне нужно включить все локально, начиная от исходников python3, до pip и setuptools. С каждым пакетом, который системе может потребоваться для работы с python, я добавил кучу пакетов, но все равно он постоянно выдает ошибки. Я использую этот install.sh скрипт для достижения этой цели.

#!/bin/bash
cd ./needed_pkgs/
rpm -i build-essentials-2019-3pclos2019.noarch.rpm zlib-1.2.7-18.el7.x86_64.rpm gcc-c++-4.8.5-39.el7.x86_64.rpm gcc-4.8.5-39.el7.x86_64.rpm cpp-4.8.5-39.el7.x86_64.rpm glibc-devel-2.17-292.el7.x86_64.rpm glibc-headers-2.17-292.el7.x86_64.rpm kernel-headers-3.10.0-1062.el7.x86_64.rpm
command -v python3 >/dev/null 2>&1 || {
  echo >&2 "Мне требуется python3, но он не установлен, устанавливаю его.";
  cd Python-3.7.5
  make clean
./configure
make
sudo make install
}
cd ../..
#virtualenv --never-download venv
#source venv/bin/activate
for entry in "./pkgs"/*; do
  pip install "$entry"
done

После многих дней попыток, и когда я почти добился рабочего состояния, я получил эту странную ошибку на последнем шаге установки pip:

введите описание изображения здесь

введите описание изображения здесь

И это заканчивается неудачей при установке python:

введите описание изображения здесь

Вам нужно найти конкретный бинарный модуль, доступный через yum, и скопировать его на оффлайн-сервер, то есть вы в основном загружаете бинарный модуль на свой компьютер, а затем копируете директорию в назначенное место через VPN.

Одно из решений может заключаться в использовании yumdownloader --resolve <имя пакета>

Порядок установки определяется yum:

yum install ./*rpm
Теперь вам нужно запустить указанную выше команду в папке с вашими загруженными пакетами, которые включают все зависимости, и это сделает все необходимое.

Ответ или решение

Установка Python 3 и всех его инструментов на оффлайн-машине под управлением Red Hat Enterprise Linux 7 (RHEL 7)

Для установки Python 3 и всех необходимых инструментов на сервере с RHEL 7 без доступа к интернету, необходимо выполнить несколько шагов, заранее подготавливая все нужные пакеты на машине с доступом к интернету. В этом руководстве мы соберем все требуемые зависимости и установим Python 3 с pip и setuptools.

Шаг 1: Подготовка на машине с доступом к интернету

  1. Установите yum-utils и rpmfind:

    sudo yum install yum-utils rpmfind
  2. Создайте папку для загрузки пакетов:

    mkdir ~/python_packages
    cd ~/python_packages
  3. Загрузите Python 3:
    Используйте yumdownloader для загрузки Python 3 и его зависимостей.

    yumdownloader --resolve python3
  4. Загрузите необходимые зависимости:
    Один из самых сложных аспектов установки Python на оффлайн-систему – корректная загрузка всех зависимостей. Выполните:

    yumdownloader --resolve <имя_пакета>
  5. Дополнительные библиотеки и инструменты:
    Убедитесь, что вы загрузили все необходимые библиотеки для работы с Python, такие как gcc, make, zlib-devel и другие.

    yumdownloader --resolve gcc gcc-c++ zlib-devel openssl-devel libffi-devel
  6. Соберите все RPM-файлы в одной папке:
    Убедитесь, что все загруженные RPM-файлы находятся в одной директории.

Шаг 2: Перенос на оффлайн-машину

  1. Скопируйте загруженные пакеты на оффлайн-машину:
    Используйте USB-накопитель или другой метод передачи данных.

  2. Создайте на оффлайн-машине папку для пакетов:

    mkdir ~/needed_pkgs
    cp /путь/к/вашим/rpm/* ~/needed_pkgs/

Шаг 3: Установка на оффлайн-машине

  1. Установите зависимости через yum:
    Перейдите в созданную директорию и выполните команду для установки всех RPM-файлов:

    cd ~/needed_pkgs
    sudo yum localinstall ./*.rpm
  2. Проверьте установку Python 3:
    Убедитесь, что Python 3 установлен:

    python3 --version
  3. Установка pip и setuptools:
    Сначала загрузите get-pip.py на машине с доступом к интернету и скопируйте его на оффлайн-машину. Затем выполните:

    python3 get-pip.py

Шаг 4: Установка дополнительных пакетов с помощью pip

  1. Создайте папку для пакетов, загруженных с PyPI:
    На машине с интернетом используйте pip download для загрузки всех нужных пакетов:

    mkdir ~/python_packages
    pip download -d ~/python_packages <имя_пакета>
  2. Скопируйте загруженные пакеты на оффлайн-машину.

  3. Установите пакеты используя pip:
    На оффлайн-машине выполните:

    pip install --no-index --find-links=/путь/к/загруженным/пакетам <имя_пакета>

Завершение

Теперь у вас установлен Python 3 с pip на оффлайн-машине RHEL 7, и вы настроили окружение для запуска вашего Django проекта. Помните, что важно внимательно проверять все зависимости и пакеты, чтобы избежать ошибок при запуске вашего проекта. Удачи в разработке!

Оцените материал
Добавить комментарий

Капча загружается...