Rafficer / linux-cli-community

Linux command-line client for ProtonVPN. Written in Python.
https://protonvpn.com
GNU General Public License v3.0
1.31k stars 198 forks source link

[BUG] - Install on Debian 12 (Bookworm) #357

Open m0nk3h opened 1 year ago

m0nk3h commented 1 year ago

Describe the bug Attempting to install the package throws an error, see below.

To Reproduce Steps to reproduce the behavior: Follow install instructions, either using pip3 or manually from the repo

Expected behavior Program to install, as it has done on Buster & Bullseye

Error Messages/Program Output/Log Messages (~/.pvpn-cli/pvpn-cli.log)

dietpi in 🌐 DietPi in linux-cli-community on  master via  v3.11.2 took 2s ❯ pip3 install -e . error: externally-managed-environment

Γ— This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install.

If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification.

Desktop (please complete the following information):

Additional context I've been using this program for many years now, and it has worked perfectly on this system. I cannot use the official protonvpn cli tool, as it does not support headless environments, and my Rasberry Pi Zero 2 is only available over SSH.

m0nk3h commented 1 year ago

In case anyone else runs into this issue, I'll pop my workaround here. I installed Distrobox, and created a root container (using the --root option), and created a Debian 11 box. From there, you can install this community Protonvpn cli utility as normal. You will also need netutils-ping to use the status option to see if the vpn is connected. It will also fail to set the dns servers to Protons, as /etc/resolv.conf is not writeable, so potentially revealing your dns requests to your ISP.

Jomosoto commented 1 year ago

Since Debian 12 you can't install packages system wide to the base environement to avoid problems like file ownership conflicts between python packages shipped by the OS package manager and packages installed by the user. It's intended that the user creates a virtual environement for every package he installs.

I suggest using pipx that manages the environement for you: cd into the linux-cli-community source directory and run pipx install ./.

This is an error in the readme and should be updated.