原文链接:统信UOS/麒麟KYLINOS上跨架构下载离线软件包
hello,大家好啊,今天给大家带来一篇在统信UOS/麒麟KYLINOS上跨架构下载离线软件包的实用教程。在我们的日常工作中,可能会遇到这样的情况:需要为不同架构的设备下载软件包,比如在x86架构的机器上下载arm64架构的离线包。这种需求在进行软件迁移或测试不同硬件平台时尤为常见。今天,我就来分享一下如何在统信UOS/麒麟KYLINOS操作系统中实现这一操作。
为什么需要跨架构下载软件包?
在多架构的环境中工作时,我们可能需要在一种架构的机器上预先下载另一种架构的软件包。这样做有几个好处:
- 兼容性测试: 在开发或测试阶段,可能需要确保软件在不同架构的设备上都能正常运行。
- 资源优化: 某些情况下,可能只有特定架构的机器能够连接到互联网,需要在这台机器上下载其他架构的软件包。
- 便于部署: 对于需要在无网络环境下部署软件的场景,提前下载好正确架构的软件包非常必要。
1、查看x86的系统信息
pdsyw@pdsyw-PC:~/Desktop$ uname -a
Linux pdsyw-PC 4.19.0-amd64-desktop #6108 SMP Wed Sep 13 13:27:25 CST 2023 x86_64 GNU/Linux
pdsyw@pdsyw-PC:~/Desktop$
pdsyw@pdsyw-PC:~/Desktop$ cat /etc/os-version
[Version]
SystemName=UOS Desktop
SystemName[zh_CN]=统信桌面操作系统
ProductType=Desktop
ProductType[zh_CN]=桌面
EditionName=Professional
EditionName[zh_CN]=专业版
MajorVersion=20
MinorVersion=1060
OsBuild=11018.101.100
pdsyw@pdsyw-PC:~/Desktop$
2、添加ARM架构支持并更新APT的软件源列表以包含新添加的架构信息
对于32位ARM(armhf):
sudo dpkg --add-architecture armhf
对于64位ARM(arm64):
sudo dpkg --add-architecture arm64
pdsyw@pdsyw-PC:/var/cache/apt/archives$ sudo dpkg --add-architecture arm64
pdsyw@pdsyw-PC:/var/cache/apt/archives$
pdsyw@pdsyw-PC:/var/cache/apt/archives$ sudo apt update
命中:1 https://pro-driver-packages.uniontech.com eagle InRelease
命中:3 https://cdn-professional-security.chinauos.com eagle/1060 InRelease
获取:6 https://pro-driver-packages.uniontech.com eagle/non-free arm64 Packages [332 kB]
命中:2 https://professional-packages.chinauos.com/desktop-professional eagle InRelease
命中:4 https://professional-packages.chinauos.com/printer eagle InRelease
获取:7 https://cdn-professional-security.chinauos.com eagle/1060/main arm64 Packages [17.8 MB]
错误:5 https://app-store-files.uniontech.com/231204154835201/appstore eagle-pro InRelease 403 Forbidden [IP: 220.170.50.99 443]
获取:8 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 Packages [18.0 MB]
获取:11 https://professional-packages.chinauos.com/printer eagle/non-free arm64 Packages [7,672 B]
获取:12 https://cdn-professional-security.chinauos.com eagle/1060/contrib arm64 Packages [80.3 kB]
获取:13 https://cdn-professional-security.chinauos.com eagle/1060/non-free arm64 Packages [133 kB]
获取:9 https://professional-packages.chinauos.com/desktop-professional eagle/contrib arm64 Packages [80.3 kB]
获取:10 https://professional-packages.chinauos.com/desktop-professional eagle/non-free arm64 Packages [167 kB]
正在读取软件包列表... 完成
E: 无法下载 https://pro-store-packages.uniontech.com/appstore/dists/eagle-pro/InRelease 403 Forbidden [IP: 220.170.50.99 443]
E: 仓库 “https://pro-store-packages.uniontech.com/appstore eagle-pro InRelease” 没有数字签名。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。
pdsyw@pdsyw-PC:/var/cache/apt/archives$
3、使用apt-get download命令下载特定的ARM软件包及其依赖。
pdsyw@pdsyw-PC:/var/cache/apt/archives$ sudo apt install --download-only -o APT::Get::Download-Only=true tree:arm64
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:libdumbnet1 libmspack0 libutempter0 libxmlsec1 libxmlsec1-openssl squashfs-tools x11-appsx11-session-utils xbitmaps xinit
使用'sudo apt autoremove'来卸载它(它们)。
将会同时安装下列软件:gcc-8-base:arm64 libc6:arm64 libgcc1:arm64 libidn2-0:arm64 libunistring2:arm64
建议安装:glibc-doc:arm64 locales:arm64
下列【新】软件包将被安装:gcc-8-base:arm64 libc6:arm64 libgcc1:arm64 libidn2-0:arm64 libunistring2:arm64 tree:arm64
升级了 0 个软件包,新安装了 6 个软件包,要卸载 0 个软件包,有 108 个软件包未被升级。
需要下载 3,251 kB 的归档。
解压缩后会消耗 12.3 MB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 gcc-8-base arm64 8.3.0.10-deepin1 [191 kB]
获取:2 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 libgcc1 arm64 1:8.3.0.10-deepin1 [34.4 kB]
获取:3 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 libc6 arm64 2.28.23-deepin1 [2,522 kB]
获取:4 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 libunistring2 arm64 0.9.10-1+d1 [383 kB]
获取:5 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 libidn2-0 arm64 2.0.5.1-1+dde [72.7 kB]
获取:6 https://professional-packages.chinauos.com/desktop-professional eagle/main arm64 tree arm64 1.8.0-1 [48.2 kB]
已下载 3,251 kB,耗时 2秒 (1,664 kB/s)
于“仅下载”模式中下载完毕
pdsyw@pdsyw-PC:/var/cache/apt/archives$
4、将下载好的软件包打包放到桌面上
pdsyw@pdsyw-PC:/var/cache/apt/archives$ sudo -i
root@pdsyw-PC:~#
root@pdsyw-PC:~#
root@pdsyw-PC:~# cd /var/cache/apt/archives
root@pdsyw-PC:/var/cache/apt/archives#
root@pdsyw-PC:/var/cache/apt/archives# ls -ltr
总用量 3188
-rw-r--r-- 1 root root 72732 10月 26 2022 libidn2-0_2.0.5.1-1+dde_arm64.deb
-rw-r--r-- 1 root root 48212 10月 26 2022 tree_1.8.0-1_arm64.deb
-rw-r--r-- 1 root root 191084 6月 15 09:57 gcc-8-base_8.3.0.10-deepin1_arm64.deb
-rw-r--r-- 1 root root 34376 6月 15 10:10 libgcc1_1%3a8.3.0.10-deepin1_arm64.deb
-rw-r--r-- 1 root root 2522024 7月 4 17:32 libc6_2.28.23-deepin1_arm64.deb
-rw-r--r-- 1 root root 382978 9月 14 17:16 libunistring2_0.9.10-1+d1_arm64.deb
drwx------ 2 _apt root 4096 12月 4 16:19 partial
-rw-r----- 1 root root 0 12月 5 2023 lock
root@pdsyw-PC:/var/cache/apt/archives# tar zcvf tree.tar.gz *.deb
gcc-8-base_8.3.0.10-deepin1_arm64.deb
libc6_2.28.23-deepin1_arm64.deb
libgcc1_1%3a8.3.0.10-deepin1_arm64.deb
libidn2-0_2.0.5.1-1+dde_arm64.deb
libunistring2_0.9.10-1+d1_arm64.deb
tree_1.8.0-1_arm64.deb
root@pdsyw-PC:/var/cache/apt/archives# mv tree.tar.gz /home/pdsyw/Desktop/
root@pdsyw-PC:/var/cache/apt/archives#
5、赋予777权限并拷贝压缩包到u盘里
pdsyw@pdsyw-PC:~/Desktop$ sudo chmod 777 tree.tar.gz
请输入密码:
验证成功
pdsyw@pdsyw-PC:~/Desktop$
6、查看目标arm64系统信息
pdsyw@pdsyw-PC:~/Desktop$ uname -a
Linux pdsyw-PC 4.19.0-arm64-desktop #6030 SMP Tue Jun 27 15:28:10 CST 2023 aarch64 GNU/Linux
pdsyw@pdsyw-PC:~/Desktop$
pdsyw@pdsyw-PC:~/Desktop$ cat /etc/os-version
[Version]
SystemName=UOS Desktop
SystemName[zh_CN]=统信桌面操作系统
ProductType=Desktop
ProductType[zh_CN]=桌面
EditionName=Professional
EditionName[zh_CN]=专业版
MajorVersion=20
MinorVersion=1060
OsBuild=11014.100.100
pdsyw@pdsyw-PC:~/Desktop$
7、查看系统是否安装tree
pdsyw@pdsyw-PC:~/Desktop$ tree
bash: tree:未找到命令
pdsyw@pdsyw-PC:~/Desktop$
8、解压压缩包
9、安装deb包
10、输入密码
11、安装完成
12、查看命令是否能正常执行
pdsyw@pdsyw-PC:~/Desktop/tree$ tree
.
├── gcc-8-base_8.3.0.10-deepin1_arm64.deb
├── libc6_2.28.23-deepin1_arm64.deb
├── libgcc1_1%3a8.3.0.10-deepin1_arm64.deb
├── libidn2-0_2.0.5.1-1+dde_arm64.deb
├── libunistring2_0.9.10-1+d1_arm64.deb
└── tree_1.8.0-1_arm64.deb0 directories, 6 files
pdsyw@pdsyw-PC:~/Desktop/tree$
通过上述步骤,你可以在统信UOS/麒麟KYLINOS操作系统中轻松实现跨架构的软件包下载,这对于软件开发和测试、以及多平台部署来说是一个非常实用的技巧。
希望这篇文章能帮助到需要进行跨架构软件部署的朋友们。如果你有任何问题或者更多的经验分享,请在评论区留言,我们一起讨论。
最后,如果你觉得这篇文章有用,请分享转发。点个关注和在看吧,让我们一起探索和学习更多关于Linux系统的知识!