OpenWrt的ipk包如何安装

OpenWrt的ipk包如何安装

发布时间:2021-11-26 14:03:04 来源:亿速云 阅读:6318 作者:小新 栏目:互联网科技

这篇文章主要为大家展示了“OpenWrt的ipk包如何安装”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“OpenWrt的ipk包如何安装”这篇文章吧。

在 make menuconfig 进行裁减 OpenWrt 时,为了让系统更精小一点,我们会把部分功能以“模块”的方式编译,即不编入内核,只是在后期用户可以进行安装与卸载。

包安装示例

如下关于Lua的配置项:

OpenWrt的ipk包如何安装

其中 json4lua, lua-cjson, lua-copas, lua-coxpcall 是没有编入原生系统的。

在 make 完成之后。

在 bin/ar71xx/packages/ 路径下全是 ipk 安装包。其中上面对应的安装包就在 bin/ar71xx/packages/packages/ 目录下。

#--开发机-- $ ls lua* lua-cjson_2.1.0-1_ar71xx.ipk      lua-rs232_1.0.3-1_ar71xx.ipk lua-copas_2.0.0-1_ar71xx.ipk      luasocket_3.0-rc1-20130909-3_ar71xx.ipk lua-coxpcall_1.15.0-1_ar71xx.ipk  luasql-mysql_2.3.0-1_ar71xx.ipk luaposix_v33.2.1-4_ar71xx.ipk     luasql-sqlite3_2.3.0-1_ar71xx.ipk

怎么安装到 OpenWrt上呢?

首先,用 scp 将 ipk 包发送到 OpenWrt 系统上。本人的 OpenWrt 的 IP 为 192.168.1.2,以 luasql 为例

#--开发机-- $ scp luasql-mysql_2.3.0-1_ar71xx.ipk root@192.168.1.2: root@192.168.1.2's password: <输入密码> luasql-mysql_2.3.0-1_ar71xx.ipk                      100% 6441     6.3KB/s   00:00

SSH登入 OpenWrt,查看文件。luasql-mysql_2.3.0-1_ar71xx.ipk 已在 /root/ 目录下了。

#--OpenWrt--- $ opkg install luasql-mysql_2.3.0-1_ar71xx.ipk Installing luasql-mysql (2.3.0-1) to root... Collected errors:  * satisfy_dependencies_for: Cannot satisfy the following dependencies for luasql-mysql:  *     libmysqlclient *   * opkg_install_cmd: Cannot install package luasql-mysql.

Oops,出师不力(不用惊慌,这也是常常遇到的事儿)~缺 libmysqlclient 库。

那就看看 libmysqlclient 库的 ipk 包有没有。如果 bin/ar71xx/packages 路径下没有,则是 make menuconfig 时没有加进来。这时,修改配置,再make一下就会有了。

在 bin/ar71xx/packages/ 路径下 find 一下。

#--开发机--- $ find -name "libmysqlclient*" ./packages/libmysqlclient_5.1.73-1_ar71xx.ipk

有!那就不用再make一遍了。

同样,用 scp 将 libmysqlclient_5.1.73-1_ar71xx.ipk 文件传送到 OpenWrt。

#--开发机--- $ scp libmysqlclient_5.1.73-1_ar71xx.ipk root@192.168.1.2:

再在 OpenWrt 的 SSH 里安装刚发送过来的 ipk 包。

#--OpenWrt--- $ opkg install libmysqlclient_5.1.73-1_ar71xx.ipk  Installing libmysqlclient (5.1.73-1) to root... Collected errors:  * satisfy_dependencies_for: Cannot satisfy the following dependencies for libmysqlclient:  *     uclibcxx *   * opkg_install_cmd: Cannot install package libmysqlclient.

Oops~Again,libmysqlclient还依赖于uclibcxx库。安装 uclibcxx 库。

#--开发机--- $ scp base/uclibcxx_0.2.4-1_ar71xx.ipk root@192.168.1.2:
#--OpenWrt--- $ opkg install uclibcxx_0.2.4-1_ar71xx.ipk  Installing uclibcxx (0.2.4-1) to root... Configuring uclibcxx.

uclibcxx库OK了

再来安装 libmysqlclient 库

#--OpenWrt--- $ opkg install libmysqlclient_5.1.73-1_ar71xx.ipk  Installing libmysqlclient (5.1.73-1) to root... Configuring libmysqlclient.

libmysqlclient库OK了。

最后安装 luasql 库

#--OpenWrt--- $ opkg install luasql-mysql_2.3.0-1_ar71xx.ipk Installing luasql-mysql (2.3.0-1) to root... Configuring luasql-mysql.

就这样,luasql 库安装完成了。

在 OpenWrt 系统的 /usr/lib/lua/ 目录下多出一个 luasql 目录,在该目录下有一个 mysql.so 文件。

启动 Lua 试试看:

#--OpenWrt--- $ lua Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio (double int32) > require 'luasql.mysql'

成功。

opkg 的使用

opkg 有点类似地 ubuntu 中的 dpkg 包管理工具。常见的用法是:安装、卸载软件包。

usage: opkg [options...] sub-command [arguments...] where sub-command is one of: Package Manipulation:     update            Update list of available packages     upgrade <pkgs>        Upgrade packages     install <pkgs>        Install package(s)     configure <pkgs>    Configure unpacked package(s)     remove <pkgs|regexp>    Remove package(s)     flag <flag> <pkgs>    Flag package(s)      <flag>=hold|noprune|user|ok|installed|unpacked (one per invocation) Informational Commands:     list            List available packages     list-installed        List installed packages     list-upgradable        List installed and upgradable packages     list-changed-conffiles    List user modified configuration files     files <pkg>        List files belonging to <pkg>     search <file|regexp>    List package providing <file>     find <regexp>        List packages whose name or description matches <regexp>     info [pkg|regexp]    Display all info for <pkg>     status [pkg|regexp]    Display all status for <pkg>     download <pkg>        Download <pkg> to current directory     compare-versions <v1> <op> <v2>                         compare versions using <= < > >= = << >>     print-architecture    List installable package architectures     depends [-A] [pkgname|pat]+     whatdepends [-A] [pkgname|pat]+     whatdependsrec [-A] [pkgname|pat]+     whatrecommends[-A] [pkgname|pat]+     whatsuggests[-A] [pkgname|pat]+     whatprovides [-A] [pkgname|pat]+     whatconflicts [-A] [pkgname|pat]+     whatreplaces [-A] [pkgname|pat]+ Options:     -A            Query all packages not just those installed     -V[<level>]        Set verbosity level to <level>.     --verbosity[=<level>]    Verbosity levels:                     0 errors only                     1 normal messages (default)                     2 informative messages                     3 debug                     4 debug level 2     -f <conf_file>        Use <conf_file> as the opkg configuration file     --conf <conf_file>     --cache <directory>    Use a package cache     -d <dest_name>        Use <dest_name> as the the root directory for     --dest <dest_name>    package installation, removal, upgrading.                 <dest_name> should be a defined dest name from                 the configuration file, (but can also be a                 directory name in a pinch).     -o <dir>        Use <dir> as the root directory for     --offline-root <dir>    offline installation of packages.     --add-arch <arch>:<prio>    Register architecture with given priority     --add-dest <name>:<path>    Register destination with given path Force Options:     --force-depends        Install/remove despite failed dependencies     --force-maintainer    Overwrite preexisting config files     --force-reinstall    Reinstall package(s)     --force-overwrite    Overwrite files from other package(s)     --force-downgrade    Allow opkg to downgrade packages     --force-space        Disable free space checks     --force-postinstall    Run postinstall scripts even in offline mode     --force-remove    Remove package even if prerm script fails     --force-checksum    Don't fail on checksum mismatches     --noaction        No action -- test only     --download-only    No action -- download only     --nodeps        Do not follow dependencies     --nocase        Perform case insensitive pattern matching     --force-removal-of-dependent-packages                 Remove package and all dependencies     --autoremove        Remove packages that were installed                 automatically to satisfy dependencies     -t            Specify tmp-dir.     --tmp-dir        Specify tmp-dir.  regexp could be something like 'pkgname*' '*file*' or similar  e.g. opkg info 'libstd*' or opkg search '*libop*' or opkg remove 'libncur*'

以上是“OpenWrt的ipk包如何安装”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

原文链接:https://www.yisu.com/jc/533633.html

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享