@[TOC](Ubuntu18.04 ros 离线本地源的制作及离线安装(xavier arm架构))
1 准备两台相同系统架构的电脑
此处使用两台xavier 均为arm架构。ubunu18.04,预备安装 ros1
xavier A可联网,用于制作本地源的
xavier B不联网,用于安装离线源
2 在xavier A上安装ros
首先打开xavierA中的var/cache/apt/archives,记住现有存在的安装包及文件。
注意:apt install 为安装后不保留deb安装包,apt-get install为安装后保留deb安装包,保存位置为var/cache/apt/archives内。

随后按照如下步骤安装,
1. sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
2. wget https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc
3. 步骤2中无法直接获得ros.asc,则运行sudo gedit /etc/hosts,在文件第三行添加199.232.28.133 raw.githubusercontent.com,保存退出。
4. 执行步骤2,成功下载ros.asc。
5. 执行sudo apt-key add ros.asc
6. 执行sudo apt update
7. sudo apt-get install ros-melodic-desktop-full
8. echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
9. source ~/.bashrc
10. 运行roscore,验证是否安装成功。
3 ROS离线本地源的制作
本节主要参考:Ubuntu18.04LTS 离线本地源的制作
3.1 前期准备
制作前先安装好需要的依赖库:
sudo apt install gnupg
sudo apt install rng-tools
其中安装 rng-tools,会提示
trying to overwrite '/etc/default/rng-tools', which is also in package nvidia-l4t-init 32.6.1-20210916210945
Errors were encountered while processing:
/var/cache/apt/archives/rng-tools_5-0ubuntu4_arm64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
因此执行强制重写覆盖安装:
sudo dpkg -i --force-overwrite /var/cache/apt/archives/rng-tools_5-0ubuntu4_arm64.deb
后续安装中为避免一些问题,先进入root模式。
第一次进入root先执行
sudo passwd root
设置密码后
su root
进入root后,
生成随机数:
rngd -r /dev/urandom
生成公钥和私钥(填写自定义名字、邮箱、密码,选择o):
gpg --gen-key
导出公钥(建议放在制作本地源后进行,容易过期,username换成上一步填写的name)
gpg -a --export username> username.pub
3.2 开始制作
进入本地deb文件所在目录
cd /var/cache/apt/archives/
这里我将除第2步安装过的包外的包拷到了home下的文件夹内了。
创建目录,将所有下载的安装包拷贝到该目录:
mkdir /media/packs
cp -r /var/cache/apt/archives/*.deb /media/packs/
// 我自己先进入deb目录内:cp -r *.deb /media/packs/
随后进入/media/packs/
cd /media/packs/
生成Package.gz
apt-ftparchive packages . > Packages
gzip -c Packages > Packages.gz
注意,这一步如果没有apt-ftparchive指令,需要
apt-get install
apt-update
apt-upgrade
随后生成Release
apt-ftparchive release ./ > Release
对Release签名(密码为第2步设定的密码)
gpg --clearsign -o InRelease Release
gpg -abs -o Release.gpg Release
压缩本地源
先进入到/media文件目录下:
cd ..// (刚刚在/media/packs/内)
tar -zcvf mypacks.tar.gz packs/
完成后,此时导出公钥,最后得到如下图的两个文件

4 xavierB下安装ros
将图中两个文件拷贝到xavierB的/opt中
导入公钥(请修改对应的username)
cd /opt (ros一般的安装目录)
apt-key add username.pub
解压packs到对应位置
tar -zxvf packs.tar.gz
备份apt源文件设置
cp /etc/apt/sources.list /etc/apt/sources.list.bak
修改apt源
sudo gedit /etc/apt/sources.list
将sources.list 原来的内容都注释掉。在最后添加
deb file:///media/packs/ /
注意上面的 file后面有3个/,且packs/和 后面/ 之间的空格。
更新索引
sudo apt-get update
到这个时候,设置本地源的工作完成。
安装ros:
sudo apt install ros-melodic-desktop-full
然后配置环境变量,个人用户,非 root ,命令如下:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
完成后roscore运行成功。
本文详细介绍了如何在两台xavierARM架构设备上,使用Ubuntu18.04进行ROS离线本地源的制作和离线安装。首先在能联网的设备(xavierA)上安装ROS并保存deb包,然后制作本地源,包括安装依赖(gnupg,rng-tools),解决安装冲突,生成公钥私钥并签名Release文件。最后,将生成的本地源文件传输到无网设备(xavierB)上,导入公钥,修改apt源,更新索引并安装ROS。
1064

被折叠的 条评论
为什么被折叠?



