ubuntu:如何找到当前系统版本下对应的软件包下载地址

ubuntu在没有联网的情况下,安装软件需自己通过网站下载deb软件包,那么如何找到当前系统版本对应的软件包的下载地址,确保软件包版本与系统版本匹配呢?可以通过/etc/apt/source.list获取

一、首先需要了解source.list里面网址格式的含义。

以deb http://us.archive.ubuntu.com/ubuntu/ trusty universe为例:

http: 为库所在的地址

Ubuntu的官方库地址:Index of /ubuntu

Ubuntu中国地址:

http://mirrors.aliyun.com/ubuntu/

http://mirrors.163.com/ubuntu/

访问源路径:Index of /ubuntu   可以看到如下内容:

tngy168.jpg

其中,比较重要的就是dists目录和pool目录。dists目录包含了当前库的所有软件包的索引。这些索引通过系统版本分类在不同的文件夹。pool目录包含了实际软件包。

进入dists目录,看到如下内容:

tngy169.jpg

可以看到很多文件夹,这些文件夹都是以下格式命名的:

codename

codename-backports

codename-proposed

codename-security

codename-updates

其中codename就是Ubuntu不同版本的代号,上图中的文件夹名其实就是对应了deb后面的section1。

可以看到Ubuntu14.04版本对应的代号是trusty。上述文件夹的差别在于:

Security - Important Security Updates.

Updates - Recommended Updates.

Proposed - Pre-released Updates.

Backports - Unsupported Updates.

打开上面的任意一个文件夹,可以看到如下内容:

tngy170.jpg

有main, multiverse, restricted, universe文件夹,这些文件夹名其实对应deb后面的section2。这些文件夹里面包含了不同软件包索引。这几个文件夹内包的区别在于:

main: 完全的自由软件。

restricted: 不完全的自由软件。

universe: Ubuntu官方不提供支持与补丁,全靠社区支持。

multiverse:非自由软件,完全不提供支持和补丁。

如果我们打开main目录下的binary-i386子目录下的Packages.gz文件,将其解压,可以看到如下内容:

Package: flashplugin-downloader

Architecture: i386

Version: 29.0.0.171ubuntu0.17.10.1

Multi-Arch: foreign

Priority: optional

Section: multiverse/web

Source: flashplugin-nonfree

Origin: Ubuntu

Maintainer: Ubuntu Developers

Original-Maintainer: Bart Martens

Bugs: https://bugs.launchpad.net/ubuntu/+filebug

Installed-Size: 25

Depends: flashplugin-installer (>= 11.1.102.55ubuntu3)

Filename: pool/multiverse/f/flashplugin-nonfree/flashplugin-downloader_29.0.0.171ubuntu0.17.10.1_i386.deb

Size: 1894

MD5sum: a25f9bd19b8c6b4247e7b4f556f96eb5

SHA1: 08358cfd6a59f7724ef6fab66dc0cfabe4792c17

SHA256: 0ee2d3fa22cd37e80cd9180b5795c7dc8ac5de942b23c56252fde31276b93fe1

Homepage: http://www.adobe.com/products/flashplayer.html

Description: Adobe Flash Player plugin installer (transitional package)

Description-md5: 66ea91f4e504085408ea841953dc65d0

......

说明: Packages.gz这个文件其实是一个“索引”文件,里面记录了各种包的包名Package、运行平台(Architecture)、版本号(Version)、依赖关系(Depends)、deb包地址(Filename)等 。注意到Filename指向的是源服务器pool目录下的某个deb。因此我们可以猜测,apt-get install 某个软件时,其实就是基于这些Packages.gz来计算依赖关系,然后根据其中的Filename地址来下载所需的deb,然后再执行dpkg -i xxx.deb来完成软件包的安装

二、了解了source.list的数据格式,并找到了库所在网址路径,就可以通过系统版本号和软件版本号找到软件包路径。

apt show libname:显示软件版本号,软件包大小,软件依赖关系,及apt-source地址和系统版本。打开Packages.gz解压出来的索引文件,搜索软件包名称,可以找到软件包的实际下载地址:

对比apt show信息,匹配软件包大小及版本号。

注:可以把依赖包一并下载。

软件包下载:https://pkgs.org/

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu系统上使用ROS,可以按照以下步骤进行操作: 1. 首先,确保你的Ubuntu系统版本与所需的ROS版本兼容。根据引用中提供的对应关系,确定你的Ubuntu版本对应的ROS版本。 2. 进入清华大学开源软件镜像站的网站,找到Ubuntu的镜像列表,并选择你所需的Ubuntu版本。点击问号图标,进入使用帮助界面。 3. 在使用帮助界面中,找到Ubuntu版本选项,并将其调整为你所使用的Ubuntu版本(例如Ubuntu 20.04LTS)。 4. 复制界面中的软件源配置内容。 5. 打开终端,输入以下命令,将原有的软件源配置文件复制到桌面: ```shell cp /etc/apt/sources.list ~/Desktop ``` 6. 编辑系统当前的软件源配置文件,输入以下命令: ```shell sudo gedit /etc/apt/sources.list ``` 7. 在打开的编辑器中,将之前复制的软件源配置内容粘贴到文件中,并保存。 8. 更新软件包列表,输入以下命令: ```shell sudo apt update ``` 9. 安装ROS,输入以下命令: ```shell sudo apt install ros-<ROS版本>-desktop-full ``` 其中,将`<ROS版本>`替换为你所需的ROS版本(例如ros-noetic)。 10. 初始化ROS环境,输入以下命令: ```shell source /opt/ros/<ROS版本>/setup.bash ``` 其中,将`<ROS版本>`替换为你所安装的ROS版本(例如ros-noetic)。 11. 验证ROS安装是否成功,输入以下命令: ```shell roscore ``` 如果没有报错,表示ROS安装成功。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值