My personal environment configuration.
Any time that I need to install a Python based command globally I
prefer to do so with each command in it's own virtual environment.
This keeps the dependencies for each package isolated from any other
and reducing the likelihood of one package breaking another. To
accomplish this, I use pipx.
sudo apt update
sudo apt install python3 python3-pip python3-venv
export PATH="~/.local/bin:$PATH"
python3 -m pip install --user pipxOr on a recent version of Manjaro.
export PATH="~/.local/bin:$PATH"
python3 -m pip install --user pipx
git clone https://github.com/kewlfft/ansible-aur.git ~/.ansible/plugins/modules/aurWith pipx installed, I use that to install Ansible.
pipx install ansible --include-depsIf you're on Arch/Manjaro you'll also need some additional plugins for Ansible which can be by running the following:
ansible-galaxy collection install --requirements-file ./ansible/manjaro_requirements.ymlOnce Ansible is setup you can run any of the playbooks by using the following command (assuming you're in the dotfiles directory).
ansible-playbook \
--ask-become-pass \
--inventory ansible/hosts \
ansible/playbooks/<playbook>--ask-become-pass prompts you for your password to switch to root
when needed.
--inventory ansible/hosts tells Ansible which hosts to run the
playbooks on and how to connect to them. In this case it's saying to
only connect to localhost and that you don't need to use ssh to
do it.
Because of the way the oh-my-zsh installer works, it expects Zsh to be the current shell. This won't be the case yet when installing it so you might need to run the Zsh playbook twice with the first time failing.