- Вопрос или проблема
- Ответ или решение
- Установка Python 3 и всех его инструментов на оффлайн-машине под управлением Red Hat Enterprise Linux 7 (RHEL 7)
- Шаг 1: Подготовка на машине с доступом к интернету
- Шаг 2: Перенос на оффлайн-машину
- Шаг 3: Установка на оффлайн-машине
- Шаг 4: Установка дополнительных пакетов с помощью pip
- Завершение
Вопрос или проблема
У меня есть проект 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: Подготовка на машине с доступом к интернету
-
Установите
yum-utils
иrpmfind
:sudo yum install yum-utils rpmfind
-
Создайте папку для загрузки пакетов:
mkdir ~/python_packages cd ~/python_packages
-
Загрузите Python 3:
Используйтеyumdownloader
для загрузки Python 3 и его зависимостей.yumdownloader --resolve python3
-
Загрузите необходимые зависимости:
Один из самых сложных аспектов установки Python на оффлайн-систему – корректная загрузка всех зависимостей. Выполните:yumdownloader --resolve <имя_пакета>
-
Дополнительные библиотеки и инструменты:
Убедитесь, что вы загрузили все необходимые библиотеки для работы с Python, такие какgcc
,make
,zlib-devel
и другие.yumdownloader --resolve gcc gcc-c++ zlib-devel openssl-devel libffi-devel
-
Соберите все RPM-файлы в одной папке:
Убедитесь, что все загруженные RPM-файлы находятся в одной директории.
Шаг 2: Перенос на оффлайн-машину
-
Скопируйте загруженные пакеты на оффлайн-машину:
Используйте USB-накопитель или другой метод передачи данных. -
Создайте на оффлайн-машине папку для пакетов:
mkdir ~/needed_pkgs cp /путь/к/вашим/rpm/* ~/needed_pkgs/
Шаг 3: Установка на оффлайн-машине
-
Установите зависимости через
yum
:
Перейдите в созданную директорию и выполните команду для установки всех RPM-файлов:cd ~/needed_pkgs sudo yum localinstall ./*.rpm
-
Проверьте установку Python 3:
Убедитесь, что Python 3 установлен:python3 --version
-
Установка pip и setuptools:
Сначала загрузите get-pip.py на машине с доступом к интернету и скопируйте его на оффлайн-машину. Затем выполните:python3 get-pip.py
Шаг 4: Установка дополнительных пакетов с помощью pip
-
Создайте папку для пакетов, загруженных с PyPI:
На машине с интернетом используйтеpip download
для загрузки всех нужных пакетов:mkdir ~/python_packages pip download -d ~/python_packages <имя_пакета>
-
Скопируйте загруженные пакеты на оффлайн-машину.
-
Установите пакеты используя pip:
На оффлайн-машине выполните:pip install --no-index --find-links=/путь/к/загруженным/пакетам <имя_пакета>
Завершение
Теперь у вас установлен Python 3 с pip на оффлайн-машине RHEL 7, и вы настроили окружение для запуска вашего Django проекта. Помните, что важно внимательно проверять все зависимости и пакеты, чтобы избежать ошибок при запуске вашего проекта. Удачи в разработке!