From 95b79dcdecbb33862d01f5af178dbe5863ece346 Mon Sep 17 00:00:00 2001 From: StEn Date: Fri, 4 Aug 2023 12:51:53 +0200 Subject: [PATCH] feat: fix python installation for systems where same python version (major.minor) is already installed to avoid python-apt missing error messages because of overridden python executable --- README.md | 1 + defaults/main.yml | 1 + tasks/base_dependencies/python.yml | 2 +- tasks/paperless_ngx/venv.yml | 6 +++--- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0710b16..3fd9623 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ The following sections are devided into: | `paperless_ngx_dependency_install_tmp_dir` | /tmp/ | Directory for temporary dependency installation files | | `paperless_ngx_dir_force_permission_exclude` | [] | Which directories should be skipped from permission check/setting. See [docs](docs/DIRECTORY_PERMISSION_CHECK.md). | | `paperless_ngx_dir_installation` | /opt/paperless-ngx | The directory where paperless-ngx static installation files are written to. | +| `paperless_ngx_dir_python` | /opt/python/{{ paperless_ngx_python_version_short }} | The directory where python binaries are compiled to. | | `paperless_ngx_dir_runtime_data` | /var/lib/paperless-ngx | The directory where the runtime data will be stored. | | `paperless_ngx_dir_virtualenv` | "{{ paperless_ngx_dir_installation }}/.venv" | The directory for the needed python venv. | | `paperless_ngx_jbig2enc_enabled` | true | Whether to install and use jbig2enc for OCRmyPDF. | diff --git a/defaults/main.yml b/defaults/main.yml index 77a2bdb..0068a94 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -5,6 +5,7 @@ paperless_ngx_db_type: sqlite # or postgresql ## Directories paperless_ngx_dir_force_permission_exclude: [] paperless_ngx_dir_installation: /opt/paperless-ngx +paperless_ngx_dir_python: /opt/python/{{ paperless_ngx_python_version_short }} paperless_ngx_dir_runtime_data: /var/lib/paperless-ngx paperless_ngx_dir_virtualenv: "{{ paperless_ngx_dir_installation }}/.venv" ## jbig2encode diff --git a/tasks/base_dependencies/python.yml b/tasks/base_dependencies/python.yml index e826e9d..dd52f67 100644 --- a/tasks/base_dependencies/python.yml +++ b/tasks/base_dependencies/python.yml @@ -77,7 +77,7 @@ delay: 60 - name: Run configure for python - ansible.builtin.command: ./configure --prefix=/usr --enable-optimizations --with-ensurepip=install + ansible.builtin.command: ./configure --prefix={{ paperless_ngx_dir_python }} --enable-optimizations --with-ensurepip=install args: chdir: "{{ _python_archive_dir.path }}" changed_when: true diff --git a/tasks/paperless_ngx/venv.yml b/tasks/paperless_ngx/venv.yml index 3a6b1ad..077d485 100644 --- a/tasks/paperless_ngx/venv.yml +++ b/tasks/paperless_ngx/venv.yml @@ -7,7 +7,7 @@ ansible.builtin.pip: name: virtualenv extra_args: --upgrade --user - executable: /usr/bin/pip{{ paperless_ngx_python_version_short }} + executable: "{{ paperless_ngx_dir_python}}/bin/pip{{ paperless_ngx_python_version_short }}" - name: Install latest pip become: true @@ -15,7 +15,7 @@ ansible.builtin.pip: name: pip virtualenv: "{{ paperless_ngx_dir_virtualenv }}" - virtualenv_python: /usr/bin/python{{ paperless_ngx_python_version_short }} + virtualenv_python: "{{ paperless_ngx_dir_python}}/bin/python{{ paperless_ngx_python_version_short }}" virtualenv_command: python{{ paperless_ngx_python_version_short }} -m virtualenv extra_args: --upgrade @@ -25,7 +25,7 @@ ansible.builtin.pip: requirements: "{{ paperless_ngx_dir_installation }}/requirements.txt" virtualenv: "{{ paperless_ngx_dir_virtualenv }}" - virtualenv_python: /usr/bin/python{{ paperless_ngx_python_version_short }} + virtualenv_python: "{{ paperless_ngx_dir_python}}/bin/python{{ paperless_ngx_python_version_short }}" extra_args: --upgrade register: _install_python_requirements until: 'not "ReadTimeoutError" in _install_python_requirements.msg | default("")'