OpenWrt/opkg

OpenWrt/opkg
opkg install --force-depends <package_name>

CDN

/etc/opkg/distfeeds.conf

src/gz openwrt_core http://mirrors.ustc.edu.cn/lede/releases/19.07.3/targets/ramips/mt7621/packages
src/gz openwrt_base http://mirrors.ustc.edu.cn/lede/releases/19.07.3/packages/mipsel_24kc/base
src/gz openwrt_luci http://mirrors.ustc.edu.cn/lede/releases/19.07.3/packages/mipsel_24kc/luci
src/gz openwrt_packages http://mirrors.ustc.edu.cn/lede/releases/19.07.3/packages/mipsel_24kc/packages
src/gz openwrt_routing http://mirrors.ustc.edu.cn/lede/releases/19.07.3/packages/mipsel_24kc/routing
src/gz openwrt_telephony http://mirrors.ustc.edu.cn/lede/releases/19.07.3/packages/mipsel_24kc/telephony

注意 mirrors.ustc.edu.cn 这个源同时有IPV4和IPV6。电信宽带必须把用 IPV4 访问,否则速度很慢。

常用包

  • dnsmasq-full : 替代 dnsmasq
  • nginx-all-module : 编译了所有官方模块的 nginx. (而 nginx 包只有默认模块,缺少 webdav 等支持)

"opkg_install_pkg: Failed to extract data files for nmap. Package debris may remain"

opkg 安装时,如果flash存储可用空间不足,可能装到一半报错退出:

root@TP1043IoT:~# opkg install nmap
Installing nmap (7.70-1) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/packages/mips_24kc/packages/nmap_7.70-1_mips_24kc.ipk
Installing libpcap (1.8.1-1) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/packages/mips_24kc/base/libpcap_1.8.1-1_mips_24kc.ipk
Installing libstdcpp (7.3.0-1) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/targets/ar71xx/generic/packages/libstdcpp_7.3.0-1_mips_24kc.ipk
Installing libpcre (8.41-2) to root...
Downloading http://downloads.openwrt.org/releases/18.06.1/packages/mips_24kc/packages/libpcre_8.41-2_mips_24kc.ipk
Configuring libpcre.
Configuring libstdcpp.
Configuring libpcap.
Collected errors:
 * pkg_write_filelist: Failed to open //usr/lib/opkg/info/nmap.list: No space left on device.
 * opkg_install_pkg: Failed to extract data files for nmap. Package debris may remain!
 * opkg_install_cmd: Cannot install package nmap.
 * opkg_conf_write_status_files: Can't open status file //usr/lib/opkg/status: No space left on device.

此时设备上的 /overlay 里可能存在残余文件,需要手工清除,否则会一直占用空间。

手工清除方法是下载 ipk 文件到PC,用 zip 文件解压缩工具打开,然后对照包里 data/ 目录里所有文件,在 /overlay/upper 里删除对应名字的文件即可。

有时在 overlay 里删除文件后 df 显示的 overlay 可用空间不会立即恢复,需要等待一段时间或重启设备。

安装 package 到外置存储

假设 usb 存储挂载在 /root/storage , 编辑 /etc/opkg.conf , 加入一行 dest 为 "ext" 的安装路径指定为外置存储里目录。

dest root /
dest ext /root/storage/rootfs
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
option check_signature

安装包到外置存储

opkg install python3 -d ext

如果需要使用安装在外置存储上的包里程序,需要修改 OpenWrt 设备的环境变量。

export PATH=$PATH:/root/storage/rootfs/usr/bin:/root/storage/rootfs/usr/sbin:/root/storage/rootfs/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/storage/rootfs/usr/lib:/root/storage/rootfs/lib

建议加到 /etc/rc.local 和 / 或 /root/.profile 文件里。

忽视依赖安装应用

opkg 仓库只提供最新版的软件包,不提供任何历史版本。

部分 ipk 包 强制指定特定版本依赖。例如 curl_7.83.1-4.1_mipsel_24kc.ipk => (依赖) libcurl4 => libwolfssl5.5.3.99a5b54a_5.5.3,而 libwolfssl 是 OpenWrt (21.x) ROM 里固化的预装应用,如果直接 opkg 安装会在 overlay 里安装一份新版 libwolfssl,占用空间。

强制安装 curl 和 libcurl4

opkg install --nodeps curl libcurl4

其他方法:手动下载 curl_7.83.1-4.1_mipsel_24kc.ipk, libcurl4_8.6.0-1_mipsel_24kc.ipk 将 curl 放到 /usr/bin,
将 libcurl.so.4.8.0 放到 /usr/lib 并链接到 libcurl.so.4

cd /usr/lib
ln -s libcurl.so.4.8.0  libcurl.so.4

运行 curl 报错:

Error loading shared library libwolfssl.so.5.5.3.99a5b54a: No such file or directory (needed by /tmp/tmp/curl)
Error loading shared library libwolfssl.so.5.5.3.99a5b54a: No such file or directory (needed by /usr/lib/libcurl.so.4)

再创建 libwolfssl 的链接指向 ROM 里的预装版本:

cd /usr/lib
ln -s libwolfssl.so.5.2.0.99a5b54a libwolfssl.so.5.5.3.99a5b54a

运行 OK。


Last update: 2024-03-13 06:13:49 UTC