Installing ROS Melodic Offline - ros

I have two Ubuntu 18.04 machines one have access to the internet and has ROS Melodic installed with some packages and dependencies, the other, however, doesn't have access to the internet, now my question is how to pack my ROS Melodic (on the online machine) using snapcraft, synaptic or whatever and make it available offline for the second Ubuntu machine?

Done by downloading the Debian (.deb) file of Synaptic Package Manager and its dependencies in the online machine, send them to the offline one install them and set it up to accept packages from http://packages.ros.org/ros/ubuntu, open Synaptic Package Manager and mark (by hand) every package you want to install (by clicking on origin and select bionic/main (packages.ros.org), right click on the package and select "mark for installation"), after done marking, from file click on generate package download script you'll get a .sh file.
now take that .sh file to the online machine, create a new folder place that .sh file in the folder (so you'll not end up in mess like I did) and run the .sh, when it's done you'll have all the .deb files of the packages you marked, send those .deb files to the offline machine, open a terminal in the folder that contains the .deb files and install them by typing sudo apt install ./*
and you're done!

Related

Failing to Install ROS apt packages on clean Ubuntu

On a machine running a just installed Ubuntu 20.04.5 OS,
I'm trying to install some packages, specifically the ROS framework.
The process fails in step 1.4 of such (taken from the ROS install guide):
enter image description here
after running the sudo apt install ros-noetic-desktop-full I get the following output:
ros-noetic-desktop-full : Depends: ros-noetic-desktop but it is not going to be installed
Depends: ros-noetic-perception but it is not going to be installed
Depends: ros-noetic-simulators but it is not going to be installed
Depends: ros-noetic-urdf-sim-tutorial but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
I should say that the first time I did this, I set the package server for software download to 'main server' instead of the regional server automatically assigned and set the update request to 'Never', and got the message
error while refreshing cache ubuntu pk-client-error-quark
I have tried fixing the broken dependencies with the apt commands, I've google the problem and the terminal output but haven't been able to solve the problem.
I ran into this problem in two different machines, and when tried to replicate in a VM with 'Boxes' inside my dev-machine I didn't face the same issue.
I should also add that I am not a Linux expert by any means, and that I might have done or do something that's beyond me yet. However, any suggestions/explanations are highly welcomed.
best regards

How to install USBIP in Docker Container

I want to use USBIP in an Ubuntu 20.04 Docker Container. I tried installing the "linux-tools-generic" Package, but when i run USBIP afterwards i get the message:
You may need to install the following packages for this specific kernel:
linux-tools-5.10.16.3-microsoft-standard-WSL2
linux-cloud-tools-5.10.16.3-microsoft-standard-WSL2
You may also want to install one of the following packages to keep up to date:
linux-tools-standard-WSL2
linux-cloud-tools-standard-WSL2
How can i install these Packages ? Could'nt find them with apt-get.
Since Docker relies on the features of the Linux kernel, you'll need to make sure that you have the USB/IP module compiled into your WSL kernel. It is not there in the stock WSL kernel, so you'll need to build your own. I haven't done this with USB/IP myself, but there are reports from the Home Assistant (home automation) forums that indicate that it works.
See this answer for more details.

Where are Docker .DEB files for Ubuntu Xenial

Title basically states it.
According to Docker instructions here:
https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-from-a-package
Go to https://download.docker.com/linux/ubuntu/dists/, choose your Ubuntu version, browse to pool/stable/ and choose amd64, armhf, ppc64el, or s390x. Download the .deb file for the Docker version you want to install.
However, when I go to https://download.docker.com/linux/ubuntu/dists/xenial/, there is not a single .DEB file to be found.
The machine I'm installing this onto does not and will not have network access.
Any help would be appreciated.
As the guideline says, you have to go further into pool/stable/amd64/. There you will find bunch of deb files of different docker versions.
The exact link, https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/

How to install docker-engine using docker binary without internet connection

I have downloaded docker binary version 1.8.2 and copied that to my backup server (centos server) which doesn't have internet connectivity. I have marked this as executable and started the docker daemon as mentioned in [https://docs.docker.com/engine/installation/binaries/][1]. But it doesn't seem to get installed as a docker service. For all the commands, I have to execute as sudo ./docker-1.8.2 {command}. Is there a way to install docker-engine as a service? Currently sudo docker version shows command not found. I'm a newbie to docker setup. Please advise.
Why not download the rpm package (there are also centos 6 packages), copy to USB stick and then to your server and simply install it with rpm command and that's it. That way you'd get the same installation as if you were to run yum.
Of course you may have some dependencies missing, but you could download all of these as well.
Firstly, if you're downloading bare binaries on an enterprise linux, you're probably doing things in a very bad way. Immediately, you're breaking updates and consistency, and leaving your system in a risky, messy state.
Try using yumdownloader --resolve to get the docker installable and anything it needs.
A better option may be to mirror the installation artifacts, and grab it from the local mirror, but that's beyond the scope if you don't do this already.

Installing Mosquitto with Busybox

I'm trying to put a Mosquitto client onto a small monitoring server that uses busybox on a linux machine. I've unzipped the mosquitto tar file. But because I only have busybox I don't have apt-get, aptitude, make, cmake, dbuild, makepkg, pacman to finish the install.
Any ideas?
Assuming that it doesn't have some other package management system (and a mosquitto package) then the usual solution to problems like this is to compile mosquitto on a different machine with all the required tools then just copy the binaries only.
You've not said what architecture the target machine is but you normally don't even need it to be the same as the build machine as you can cross-compile binaries for different platforms.

Resources