- name: Set variables set_fact: arch: "{{ ansible_distribution == 'Archlinux' }}" termux: "{{ ansible_distribution == 'OtherLinux' and ansible_python.executable == '/data/data/com.termux/files/usr/bin/python' }}" debian: "{{ ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu' }}" - name: Set secondary variables set_fact: pacman: "{{ arch }}" apt: "{{ termux or debian }}" sudo: "{{ not termux }}" # TODO Install python if not done - name: Install python-apt dependency for Termux block: # TODO Check if the correct version - name: Check for DistUtilsExtra (Termux) command: python -c 'import DistUtilsExtra' changed_when: False rescue: - name: Create temporarty folder for DistUtilsExtra (Termux) tempfile: state: directory suffix: python-distutils-extra # path: /data/data/com.termux/files/usr/tmp/ register: pde_tempdir - name: Download DistUtilsExtra (Termux) get_url: url: "https://launchpad.net/python-distutils-extra/trunk/{{ version }}/+download/python-distutils-extra-{{ version }}.tar.gz" dest: "{{ pde_tempdir.path }}/python-distutils-extra.tar.gz" - name: Extract DistUtilsExtra (Termux) unarchive: src: "{{ pde_tempdir.path }}/python-distutils-extra.tar.gz" remote_src: yes dest: "{{ pde_tempdir.path }}" - name: Install DistUtilsExtra (Termux) command: cmd: python3 setup.py install chdir: "{{ pde_tempdir.path }}/python-distutils-extra-{{ version }}" when: termux vars: version: 2.39 - name: Install python-apt (Termux) pip: name: python-apt when: termux # Collecting python-apt # Using cached python-apt-0.7.8.tar.bz2 (49 kB) # ERROR: Command errored out with exit status 1: # command: /data/data/com.termux/files/usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/data/data/com.termux/files/usr/tmp/pip-install-dsga__i7/python-apt/setup.py'"'"'; __file__='"'"'/data/data/com.termux/files/usr/tmp/pip-install-dsga__i7/python-apt/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /data/data/com.termux/files/usr/tmp/pip-pip-egg-info-ptpprl0m # cwd: /data/data/com.termux/files/usr/tmp/pip-install-dsga__i7/python-apt/ # Complete output (5 lines): # Traceback (most recent call last): # File "", line 1, in # File "/data/data/com.termux/files/usr/tmp/pip-install-dsga__i7/python-apt/setup.py", line 11, in # string.split(parse_makefile("python/makefile")["APT_PKG_SRC"])) # AttributeError: module 'string' has no attribute 'split' # ---------------------------------------- # ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. # WARNING: You are using pip version 20.2.3; however, version 20.3.3 is available. # You should consider upgrading via the '/data/data/com.termux/files/usr/bin/python3 -m pip install --upgrade pip' command. # Install alternative package managers - name: Install AUR package manager aur: name: yay-bin when: arch - name: Install python pip (Pacman) pacman: name: python-pip when: arch become: "{{ sudo }}" become_user: root - name: Install python pip (Debian) apt: name: python3-pip when: debian become: "{{ sudo }}" become_user: root # Termux: pip is included with Python - name: Install base packages include_tasks: file: base.yml apply: become: "{{ sudo }}" become_user: root