• 12.OpenWrt-OPKG包管理


    12.OpenWrt-OPKG包管理

    Android系统手机都有应用商店,苹果手机也有app store,用来下载安装各种app.在OpenWrt系统中也有自己的 应用商店,OpenWrt是通过OPKG(Open/OpenWrt Package)来管理软件包,OPKG是一个轻量快速的软件包管理系统,用来管理软件包的下载、安装、升级、卸载和查询等,并处理软件包的依赖关系.OPKG不光可以安装应用程序也可以安装驱动程序等,安装的软件可以是编译出来的ipk安装包,也可以是从互联网下载的安装包.

    12.1 OPKG 命令

    OPKG 的功能主要分两类,一种是软件包的管理命令,另外一种是软件包的查询命令.另外还有很多可以修饰的选项.

    12.1.1 软件包的管理

    软件包的管理是OPKG最重要的功能,主要包含更新软件包列表、安装、卸载和升级等功能.

    1. opkg update

    该命令用于更新可以安装的软件包列表.该命令不需要参数,执行时从服务器地址下载软件包列表文件并存储在/var/opkg-lists/目录下.OPKG在安装或升级时需要读取这个文件,这个文件代表当前仓库中所有可用的软件包.也可以删除该文件来释放存储空间,在安装软件前需要重新获取这个文件.

    2. opkg install

    该命令用于安装软件包, 需要一个参数,传递一个软件包名称.如果软件包之间有依赖关系,会自动下载所有被依赖的软件包,并依次将所有被依赖的软件包安装上.

    3. opkg remove

    该命令用于卸载软件包,需要一个参数,传递一个软件包名称.需要注意的是,在安装时自动安装的软件包并不会删除,需要自己手动删除,或者在卸载软件包的同时增加(–autoremove)参数将不需要的安装包也删除.示例 3-2 所示代码用于删除 file 软件包及不再使用的依赖包.

    4. opkg upgrade

    该命令用于升级软件包.如果软件包没有安装,该命令执行之后和“opkg install”效果相同.如果升级多个软件包,以空格分隔列在命令之后即可.例如使用 opkg upgrade ip wget 来升级两个软件包.对大多数用户来说,不推荐升级软件包. OpenWrt 发布后再进行升级大多数情况下是不可能的,这是因为 OpenWrt 发布之后一般不再更新,除非主干的快照被编译机器人(buildbot)自动更新.如果内核升级了,可能带来升级风险,因为内核可能和原始安装的应用软件不兼容.因此一般只升级应用,即非内核软件包.

    12.1.2 查询信息

    OPKG 查询命令可以在软件仓库中查询,也可以在运行的系统中查询. OPKG 提供了软件包的双向查询功能:正向查询,即从软件包来查询所包含的文件列表;也可以反向查询,从系统中所安装的文件查询所属的软件包.

    1. opkg list

    该命令用于列出所有可使用的软件包,列出内容格式为:软件包名称 – 版本 – 描述.描述内容是可以有换行的.如果使用 grep 命令来查找软件包则需注意, grep 是单行匹配, 因此使用 grep 查找的结果并不准确.

    2. opkg list-installed

    该命令用于列出系统中已经安装的软件包.

    3. opkg list-changed-conffiles

    该命令用于列出用户修改过的配置文件.

    4. opkg files

    该命令用于列出属于这个软件包( )中的所有文件,这个软件包必须已经安装.

    5. opkg search

    该命令用于列出提供的软件包,注意:需要传递文件的绝对路径.

    6. opkg find

    该命令用于列出软件包名称和匹配的软件包. 是一个正则表达式,可以精确匹配,也可以使用星号来模糊匹配,例如使用“net*”或者“net”,均可以匹配 NetCat.

    7. opkg info [pkg]

    该命令用于显示已安装[pkg]软件包的信息,包含软件包名称、版本、所依赖的软件包名称、安装状态和安装时间等.如果没有指定参数则输出所有已安装软件包的信息.“opkgstatus”和这个命令功能完全相同.

    8. opkg download

    该命令用于将软件包下载到当前目录.

    9. opkg print-architecture

    该命令用于列出安装包的架构.

    10. opkg whatdepends [-A] [pkg]

    该命令用于针对已安装的软件包,输出依赖这个软件包的软件包.

    12.2 使用举例

    12.2.1 安装软件包

    SSH是非常有用的调试工具,可以在同一局域网中连接到板子的Terminal,也可以通过SSH收发文件.有时候并不知道软件包的完整名称,这时候可以通过模糊查找,找到对应的软件包名称来进行安装.

    更新软件包 :guilabel:opkg update.
    模糊查找关键字 :guilabel:opkg list |grep ssh.
    安装软件包 :guilabel:opkg in

  • 相关阅读:
    数字时代古文的传承———云南文化瑰宝“爨文化“(我为家乡发声)
    Blazor前后端框架Known-V1.2.5
    对话框管理器第一章:先热热身
    IQtree:使用 SNP 数据构建 有根 系统发育树及踩坑
    2739. 总行驶距离
    1-网络架构和Netty系列-网络模型
    从入门到一位合格的爬虫师,这几点很重要
    python计算长方形面积 青少年编程电子学会python编程等级考试一级真题解析2022年6月
    基于JavaWEB+MySQL的二手闲置物品交易网站系统
    安全的 PHP 注销脚本
  • 原文地址:https://blog.csdn.net/shuige2215/article/details/128038438