install: установка python3.12 из vendor/debs
This commit is contained in:
parent
890ed5fc93
commit
8868711783
|
|
@ -1,6 +1,6 @@
|
||||||
# F7cloud Talk Recording — сборка для развёртывания
|
# F7cloud Talk Recording — сборка для развёртывания
|
||||||
|
|
||||||
В репозитории собраны **все компоненты для работы сервиса, кроме Python**. Firefox ESR и GeckoDriver скопированы с машины сборки в `vendor/` и при развёртывании на другом сервере просто копируются из репо в `/opt/firefox-esr` и `/usr/local/bin/geckodriver`. Пакеты **xvfb** и **ffmpeg** также включены в репозиторий в виде `.deb` (для Debian/Ubuntu) и при установке будут поставлены скриптом `install` из `vendor/debs/` при их отсутствии в системе. Python 3.12 вы должны установить на целевой машине самостоятельно.
|
В репозитории собраны **все компоненты для работы сервиса**. Firefox ESR и GeckoDriver скопированы с машины сборки в `vendor/` и при развёртывании на другом сервере просто копируются из репо в `/opt/firefox-esr` и `/usr/local/bin/geckodriver`. Пакеты **xvfb**, **ffmpeg**, **python3.12** и **python3.12-venv** также включены в репозиторий в виде `.deb` (для Debian/Ubuntu) и при установке, при их отсутствии в системе, ставятся скриптом `install` из `vendor/debs/` через `dpkg -i` (без доступа к внешним репозиториям).
|
||||||
|
|
||||||
## Структура
|
## Структура
|
||||||
|
|
||||||
|
|
|
||||||
26
install
26
install
|
|
@ -33,7 +33,31 @@ if ! command -v ffmpeg >/dev/null 2>&1; then
|
||||||
NEED_FFMPEG=1
|
NEED_FFMPEG=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Пытаемся доустановить xvfb и ffmpeg из vendor/debs, если они отсутствуют
|
# Пытаемся доустановить Python 3.12, xvfb и ffmpeg из vendor/debs, если они отсутствуют
|
||||||
|
if [ "$NEED_PYTHON" -eq 1 ]; then
|
||||||
|
PY_DEB="$(ls "$REPO_ROOT"/vendor/debs/python3.12_[0-9]*.deb 2>/dev/null | head -n1 || true)"
|
||||||
|
PY_VENV_DEB="$(ls "$REPO_ROOT"/vendor/debs/python3.12-venv_[0-9]*.deb 2>/dev/null | head -n1 || true)"
|
||||||
|
if [ -n "$PY_DEB" ]; then
|
||||||
|
echo "python3.12 не найден в системе. Устанавливаю из $PY_DEB ..."
|
||||||
|
if dpkg -i "$PY_DEB"; then
|
||||||
|
echo "python3.12 успешно установлен из vendor/debs."
|
||||||
|
else
|
||||||
|
echo "Не удалось установить python3.12 из $PY_DEB. Проверьте зависимости пакета." >&2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -n "$PY_VENV_DEB" ]; then
|
||||||
|
echo "python3.12-venv не найден в системе. Устанавливаю из $PY_VENV_DEB ..."
|
||||||
|
if dpkg -i "$PY_VENV_DEB"; then
|
||||||
|
echo "python3.12-venv успешно установлен из vendor/debs."
|
||||||
|
else
|
||||||
|
echo "Не удалось установить python3.12-venv из $PY_VENV_DEB. Проверьте зависимости пакета." >&2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if command -v python3.12 >/dev/null 2>&1; then
|
||||||
|
NEED_PYTHON=0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$NEED_XVFB" -eq 1 ]; then
|
if [ "$NEED_XVFB" -eq 1 ]; then
|
||||||
XVFB_DEB="$(ls "$REPO_ROOT"/vendor/debs/xvfb_*.deb 2>/dev/null | head -n1 || true)"
|
XVFB_DEB="$(ls "$REPO_ROOT"/vendor/debs/xvfb_*.deb 2>/dev/null | head -n1 || true)"
|
||||||
if [ -n "$XVFB_DEB" ]; then
|
if [ -n "$XVFB_DEB" ]; then
|
||||||
|
|
|
||||||
3
vendor/README.md
vendored
3
vendor/README.md
vendored
|
|
@ -8,7 +8,8 @@
|
||||||
| **vendor/geckodriver/geckodriver** | Бинарь GeckoDriver для Linux. При деплое копируется в `/usr/local/bin/geckodriver`. |
|
| **vendor/geckodriver/geckodriver** | Бинарь GeckoDriver для Linux. При деплое копируется в `/usr/local/bin/geckodriver`. |
|
||||||
| **vendor/debs/xvfb\_*.deb** | Debian-пакет `xvfb` для установки Xvfb на целевой машине (`dpkg -i` вызывается из `install`, если Xvfb не найден). |
|
| **vendor/debs/xvfb\_*.deb** | Debian-пакет `xvfb` для установки Xvfb на целевой машине (`dpkg -i` вызывается из `install`, если Xvfb не найден). |
|
||||||
| **vendor/debs/ffmpeg\_*.deb** | Debian-пакет `ffmpeg` для установки ffmpeg на целевой машине (`dpkg -i` вызывается из `install`, если ffmpeg не найден). |
|
| **vendor/debs/ffmpeg\_*.deb** | Debian-пакет `ffmpeg` для установки ffmpeg на целевой машине (`dpkg -i` вызывается из `install`, если ffmpeg не найден). |
|
||||||
| **Python 3.12** | Не в репо — вы должны установить его на целевой машине сами; `install` лишь проверяет наличие `python3.12`. |
|
| **vendor/debs/python3.12\_*.deb** | Debian-пакет `python3.12` для установки Python 3.12 на целевой машине (`dpkg -i` вызывается из `install`, если `python3.12` не найден). |
|
||||||
|
| **vendor/debs/python3.12-venv\_*.deb** | Debian-пакет `python3.12-venv` для модуля venv (`dpkg -i` вызывается из `install`, если модуль не установлен). |
|
||||||
|
|
||||||
## Обновление vendor/ (новая машина сборки)
|
## Обновление vendor/ (новая машина сборки)
|
||||||
|
|
||||||
|
|
|
||||||
BIN
vendor/debs/python3.12-venv_3.12.3-1ubuntu0.12_amd64.deb
vendored
Normal file
BIN
vendor/debs/python3.12-venv_3.12.3-1ubuntu0.12_amd64.deb
vendored
Normal file
Binary file not shown.
BIN
vendor/debs/python3.12_3.12.3-1ubuntu0.12_amd64.deb
vendored
Normal file
BIN
vendor/debs/python3.12_3.12.3-1ubuntu0.12_amd64.deb
vendored
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user