this post was submitted on 25 Jan 2024
28 points (96.7% liked)

Linux

48212 readers
1981 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Hope these kinds of questions are allowed here. On this occasion I'm just looking for a straight answer.

For a university course I need to install ROS - software for doing robotics stuff. Specifically, I need ROS 1 - which is no longer being updated, as ROS 2 is now the focus. The installation instructions are here: https://wiki.ros.org/Installation/Ubuntu

The instructions from the course material say that only Ubuntu 18 would work, though the ROS wiki says Ubuntu 20.04 is the target. Either way, it doesn't seem to be available for Ubuntu 22.04 and therefore Linux Mint 21, which is what I'm running.

The course instructions generally gives 3 options:

  1. Install ROS on a VirtualBox virtual machine
  2. Install on Windows using WSL
  3. Install on a real Ubuntu 18 system

Right now I'm going to use VirtualBox to get started, but I'd really prefer to run it natively and I'm worried about performance. Is there a simple way to download and run software intended for Ubuntu 20.04 on Linux Mint 21.3?

Edit: thank you all for the great suggestions! I got stuck on an unrelated problem (ran out of storage space) but I'm sure your suggestions will work once I fix that. Forgive me for not replying individually, you're all awesome and I don't have anything to add other than "thank you" :)

top 13 comments
sorted by: hot top controversial new old
[–] GravitySpoiled@lemmy.ml 17 points 9 months ago* (last edited 9 months ago) (1 children)

Sounds like distrobox/ toolbx would be the easiest here. There's an ubuntu 18.04 image here https://github.com/toolbx-images/images it's like a vm without all the overhead

[–] beforan@lemm.ee 3 points 9 months ago

Since they already mentioned WSL, you can also describe distrobox like WSL for Linux.

but yeah, agree this would be the simplest.

[–] Potajito@feddit.ch 8 points 9 months ago

I'd say distrobox is the easiest and safest way to do that.

[–] piexil@lemmy.world 8 points 9 months ago* (last edited 9 months ago)

Ubuntu themselves package ROS, it's a little out of date from the latest (1.16 vs 1.18) https://packages.ubuntu.com/jammy/ros-desktop

Try apt update && apt install ros-desktop

[–] Para_lyzed@lemmy.world 5 points 9 months ago (1 children)

I don't have much to comment on native installs that hasn't already been said, but if you go with a VM, please don't use VirtualBox. It's a pile of hot garbage that pales in comparison to the already existing, kernel-level virtualization offered by KVM/QEMU. Use a package like virt-manager for KVM/QEMU based VMs and your experience and performance will be infinitely better. The Linux kernel has KVM built in for a reason, so take advantage of that.

Otherwise, Distrobox is a great recommendation, as are many of the other install methods listed in these comments.

[–] Max_P@lemmy.max-p.me 1 points 9 months ago (1 children)

For maximum performance you probably want to skip virt-manager, virt-viewer has a hardcoded FPS cap.

If you use QEMU directly and use virtio-gpu paired with the sdl or gtk display, and OpenGL enabled, you can run Ubuntu at 4K144Hz no problem. The VM is near imperceptible, and it works out of the box, that's not even touching the crazy VFIO stuff.

[–] Para_lyzed@lemmy.world 2 points 9 months ago* (last edited 9 months ago)

Perhaps I was a bit vague with the word "performance", but given that this user only seems to be interested in running ROS, there is absolutely no reason they need anything above the FPS cap (hence my recommendation of virt-manager, as it is quite user friendly). The "performance" aspect of it boils down to CPU utilization and efficiency more than anything.

[–] Max_P@lemmy.max-p.me 5 points 9 months ago

Install from source is fairly likely to work: https://wiki.ros.org/noetic/Installation/Source

It doesn't seem to have any outrageously complicated dependencies to work, just C++, Boost and a few other recognizable names, at least at a glance. They also seemingly have an ArchLinux package, which means it's likely to at least be buildable on latest everything. Mint will fall in between, so the odds it'll compile are pretty good.

[–] mozz@mbin.grits.dev 3 points 9 months ago

In general this kind of thing won't work real real well. You can sometimes make it work but it takes a surprisingly large amount of knowledge about the internals of the packaging system and even then it sometimes fails or causes problems.

I would try install ROS 1 via apt as another poster recommended, with VirtualBox as the fallback option (and see whether performance turns out to be a real issue in practice or not).

[–] LKC@sh.itjust.works 3 points 9 months ago* (last edited 9 months ago)

May not qualify as "simple" versus a VM, but you can try using chroot environment. You essentially run minimal Ubuntu environment from a folder that can be a newer or old version of the host OS.

Here is one guide to get up and running.

This guide is easier to follow IMO.

[–] lemmyreader@lemmy.ml 2 points 9 months ago* (last edited 9 months ago)

Both Snap and Flatpak provide an easy install for the really old, pre 1997, NCSA Mosaic browser. The Snap page gives a hint about how this was done :

Built from source code hosted at: https://github.com/alandipert/ncsa-mosaic Thanks to John Lenton for the snapcraft config.

This suggests that if you can build the ROS 1 from source, you have Flatpak and Snap as option, and maybe also AppImage.

Besides that there is also Linux KVM (QEMU) which may perform better than VirtualBox. Cannot find a good page for Ubuntu on it, but here's the KVM entry of the excellent Arch Linux wiki https://wiki.archlinux.org/title/KVM

[–] conciselyverbose@kbin.social 2 points 9 months ago

Try it?

I haven't really needed to virtualize anything lately, but my understanding is that some of the options on Linux are pretty light weight. Frpm discussion I've seen, I think distrobox could resolve the issue with minimal overhead if you have issues natively, though I haven't personally experimented with it or its limitations.

[–] skullgiver@popplesburger.hilciferous.nl 2 points 9 months ago* (last edited 9 months ago)

You can always try.

However, be aware that adding third party repositories may cause problems in the future. For example, if you upgrade to a version of Mint that's based on 22.04 or 24.04, the updater may throw errors or even do an incomplete update because of broken dependency chains.

If the software you're using doesn't depend on (a specific version of) software in the Mint repositories, you should be fine and it shouldn't matter. I myself have a few external repositories that I know from experience cause no dependency issues. I've also had to debug plenty of broken upgrades because of other (popular!) repositories, though.

You may want to use a tool like Distrobox instead. Binaries running inside Distrobox have close to zero overhead. GPU acceleration can be a bit trickier, but for Nvidia GPUs there are workarounds to maintain full performance.

You can also try the version of ROS that Ubuntu packages. It's not the latest version, but it's guaranteed to work without breaking your software updates or operating system upgrades in the long term.