I’m toying a bit with a “HomeLab” server of sorts on a rather powerful machine within which I can easily spin up VMs under Proxmox. For ArduPilot and other dev projects, I installed a minimal Ubuntu instance but quickly tired of the stupid “Pro subscription” nag messages, and I’m not much a fan of their forcing the use of Snap, so I thought I’d try plain old Debian, instead.
normally we are already supporting debian ! May just need to add the latest version (bookworm ?) on the install script .
Latest test result :
You can see that buster and bulleye are working well!
PR welcome if you already know what package are needed, otherwise I could do it.
As most recent distro a moving to pyenv, we can probably set this are the default behavior, that would allow to support most unknown distribution without modification of the install script.
pipx isn’t standard so best to avoid it for the mass, pip is the current way. On recent Ubuntu version we are using venv so that don’t have issue with system libs anymore, pretty much the same as pipx
I don’t know it much, but from its docs, if we do mavproxy and pymavlink installation in isolation that will create issue for developper as mavproxy won’t use the pymavlink instalation (didn’t try, just guessing from the docs)
I’ll see what I can do to test/refine based on your input here. Should be able to snapshot a base install VM and revert to it multiple times to ensure we capture what’s required.
Somehow I missed that other Debian distros are already supported and sorta rolled my own with some kludges that can easily be refined.
Happy to have you take a look to see if I missed a detail or nuance. Seems to be working well for me!
Slightly off topic, if you want all the goodies that are included by the script (in ~/.profile) to actually function in a VS Code remote terminal, including automatic venv activation, the following entries in settings.json are quite helpful:
we already have bunch of things … if that something standard to make the default terminal better with our tools, I think that is worth it to have it. Most user use whatever we give them anyway
Found a fresh installation script for Debian 12 here (just 7h old)
Have a uncluttered bookworm in a VM. The test run with that fresh script stopped here
~/ardupilot$ ./waf configure
Waf: The wscript in ‘/home/kalle/ardupilot’ is unreadable
Traceback (most recent call last):
File “/home/kalle/ardupilot/modules/waf/waflib/Scripting.py”, line 140, in waf_entry_point
set_main_module(os.path.normpath(os.path.join(Context.run_dir, Context.WSCRIPT_FILE)))
File “/home/kalle/ardupilot/modules/waf/waflib/Scripting.py”, line 190, in set_main_module
Context.g_module = Context.load_module(file_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/kalle/ardupilot/modules/waf/waflib/Context.py”, line 665, in load_module
code = Utils.readf(path, m=‘rU’, encoding=encoding)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/home/kalle/ardupilot/modules/waf/waflib/Utils.py”, line 231, in readf
with open(fname, m) as f:
^^^^^^^^^^^^^^
ValueError: invalid mode: ‘rUb’