Skip to content

Docs: LINUX_SETUP.md relies on Ubuntu-specific PPA #1091

@Schronding

Description

@Schronding

Hi team, nice to meet you! I am looking to contribute to the project and was going through the LINUX_SETUP.md guide. However, step 2 fails on my setup (Debian 12 Bookworm) when running sudo add-apt-repository ppa:deadsnakes/ppa.

sudo add-apt-repository ppa:deadsnakes/ppa
Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 362, in <module>
    sys.exit(0 if addaptrepo.main() else 1)
                  ^^^^^^^^^^^^^^^^^
  File "/usr/bin/add-apt-repository", line 345, in main
    shortcut = handler(source, **shortcut_params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/softwareproperties/shortcuts.py", line 40, in shortcut_handler
    return handler(shortcut, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 86, in __init__
    if self.lpppa.publish_debug_symbols:
       ^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 126, in lpppa
    self._lpppa = self.lpteam.getPPAByName(name=self.ppaname)
                  ^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 113, in lpteam
    self._lpteam = self.lp.people(self.teamname)
                   ^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'people'

The setup script relies on a Launchpad PPA, which is specific to Ubuntu. On Debian and other Linux distributions, this command fails because Launchpad is not natively supported. Because of this, the guide is currently Ubuntu-exclusive rather than general Linux.

I suggest updating the documentation to recommend a distribution-agnostic tool like pyenv for Python version management. It works consistently across Debian, Mint, Arch, etc.

The tradeoff with pyenv is that it requires compiling Python from source (which takes longer) and involves modifying the PATH ordering, which could introduce edge cases for some users.

I also thought about suggesting Docker as an isolated environment, but to be completely honest, I am not familiar enough with it to accurately assess if it's a good fit for this specific project.

Let me know your thoughts on this approach. If you agree that pyenv is a viable alternative, I would be happy to work on a PR to update the setup documentation! :D

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions