阡陌 发表于 2023-12-26 00:21:48

群晖(Synology)NAS 包管理工具 ipkg



!(https://file.mculoop.com/images/2022/11/synology-nas.jpg)

虽然群晖套件中心的工具挺丰富,但需要比较偏门的工具时很可能没有。如果能有像 apt、yum 这样的软件包管理器就好了,这个确实可以有,IPKG(Itsy Package Management System)就是这样的工具。

iPKG 是一个非常轻量级的包管理系统。它是为存储资源匮乏的 Linux 系统软件安装设计的,例如掌上电脑(曾经)。它不仅可以构建软件包,还可以方便地安装和卸载。曾在 OpenWrt 系统上较为流行。由于 ipkg 项目已不再继续开发,很多项目已转粉 opkg(从 ipkg fork 的项目)。不过这不影响我们的使用。

<!--more-->



## 下载 bootstrap 安装脚本

```sh
wget http://ipkg.nslu2-linux.org/optware-ng/bootstrap/buildroot-x86_64-bootstrap.sh
```

我的 NAS CPU 是 INTEL Celeron J3355,系统是 64 位的,所以选择了 x86_64,64 位兼容 i686(32 位),所以也可以装 32 位的。我看网上好多选择了 `http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/syno-i686-bootstrap_1.2-7_i686.xsh`,从名字 `syno-*` 来看似乎是适配群晖的?除了软件数量少几百个,似乎没有什么大的差异。不过由于我需要安装 64 位的 GCC,所以就不选它了。

看一下 buildroot-x86_64-bootstrap.sh:

```sh
#!/bin/sh
feed=http://ipkg.nslu2-linux.org/optware-ng/buildroot-x86_64
ipk_name=$(wget -qO- $feed/Packages | awk '/^Filename: ipkg-static/ {print $2}')
wget -O /tmp/$ipk_name $feed/$ipk_name
tar -C /tmp -xvzf /tmp/$ipk_name ./data.tar.gz
tar -C / -xzvf /tmp/data.tar.gz
rm -f /tmp/$ipk_name /tmp/data.tar.gz
echo "src/gz optware-ng $feed" > /opt/etc/ipkg.conf
echo "dest /opt/ /" >> /opt/etc/ipkg.conf

PATH=$PATH:/opt/bin:/opt/sbin

echo "Bootstraping done"

echo "Installing glibc-locale package to generate needed /opt/lib/locale/locale-archive"
echo "================================================================================="

/opt/bin/ipkg update
/opt/bin/ipkg install glibc-locale

echo "================================================================================="
echo "Removing glibc-locale package to save space: this doesn't remove generated /opt/lib/locale/locale-archive"

/opt/bin/ipkg remove glibc-locale
```

该脚本的作用是选择了与脚本 CPU 架构相一致的 ipkg 本尊,将其下载后安装在 `\opt\bin`。



## 安装

```sh
chmod +x buildroot-x86_64-bootstrap.sh
./buildroot-x86_64-bootstrap.sh
```



## 常用命令

```
ipkg update #更新本地可用软件列表,首次安装软件前至少先运行一次

ipkg list #列出所有的可用软件

ipkg list_installed #查看已安装的软件

ipkg find <软件名> #从可用软件包中搜索指定软件

ipkg list | grep <关键词> #从可用软件包中搜索指定关键词

ipkg install <软件名> #安装指定软件

ipkg remove <软件名> #卸载指定软件

ipkg upgrade #升级已安装的软件
```


kasimu 发表于 2024-3-17 00:54:18

感谢分享
页: [1]
查看完整版本: 群晖(Synology)NAS 包管理工具 ipkg