博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenWrt的ipk包安装
阅读量:7061 次
发布时间:2019-06-28

本文共 5717 字,大约阅读时间需要 19 分钟。

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

包安装示例

如下关于Lua的配置项:

其中 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.ipklua-copas_2.0.0-1_ar71xx.ipk      luasocket_3.0-rc1-20130909-3_ar71xx.ipklua-coxpcall_1.15.0-1_ar71xx.ipk  luasql-mysql_2.3.0-1_ar71xx.ipkluaposix_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.ipkInstalling 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.ipkInstalling luasql-mysql (2.3.0-1) to root...Configuring luasql-mysql.

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

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

启动 Lua 试试看:

 
#--OpenWrt---$ luaLua 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 
Upgrade packages install
Install package(s) configure
Configure unpacked package(s) remove
Remove package(s) flag
Flag package(s)
=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
List files belonging to
search
List package providing
find
List packages whose name or description matches
info [pkg|regexp] Display all info for
status [pkg|regexp] Display all status for
download
Download
to current directory compare-versions
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[
] Set verbosity level to
. --verbosity[=
] Verbosity levels: 0 errors only 1 normal messages (default) 2 informative messages 3 debug 4 debug level 2 -f
Use
as the opkg configuration file --conf
--cache
Use a package cache -d
Use
as the the root directory for --dest
package installation, removal, upgrading.
should be a defined dest name from the configuration file, (but can also be a directory name in a pinch). -o
Use
as the root directory for --offline-root
offline installation of packages. --add-arch
:
Register architecture with given priority --add-dest
:
Register destination with given pathForce 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*'

转载地址:http://ljbll.baihongyu.com/

你可能感兴趣的文章
CentOS 系统限制普通用户切换到 root 管理员账号
查看>>
npm添加淘宝镜像
查看>>
封装 ~继承~多态
查看>>
Dubbo多注册中心和Zookeeper服务的迁移
查看>>
dubbo 架构与用法
查看>>
javaweb中的 / 代表什么
查看>>
java常见的4个类集接口collection,map,List,set
查看>>
移动端前端开发不可不知的——rem
查看>>
阿里云MVP课堂:零基础建站,满足你拥有自己网站的心愿
查看>>
21.38 mongodb分片搭建(中)
查看>>
Android-布局管理-帧布局
查看>>
如何设置PDF转为CAD文件的DXF或者DWG的格式
查看>>
ios视频播放器-1
查看>>
图的生成树
查看>>
Linux网络相关、firewalld和netfilter
查看>>
linux基础(day30)
查看>>
四周第五次课(11月10日) 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩
查看>>
财务管理后台(前台页面)
查看>>
解决hash冲突的4种方法
查看>>
Kafka简介及安装配置
查看>>