原文链接:统信UOS/麒麟KYLINOS上跨架构下载离线软件包
hello,大家好啊,今天给大家带来一篇在统信UOS/麒麟KYLINOS上跨架构下载离线软件包的实用教程。在我们的日常工作中,可能会遇到这样的情况:需要为不同架构的设备下载软件包,比如在x86架构的机器上下载arm64架构的离线包。这种需求在进行软件迁移或测试不同硬件平台时尤为常见。今天,我就来分享一下如何在统信UOS/麒麟KYLINOS操作系统中实现这一操作。
为什么需要跨架构下载软件包?
在多架构的环境中工作时,我们可能需要在一种架构的机器上预先下载另一种架构的软件包。这样做有几个好处:

  1. 兼容性测试: 在开发或测试阶段,可能需要确保软件在不同架构的设备上都能正常运行。
  2. 资源优化: 某些情况下,可能只有特定架构的机器能够连接到互联网,需要在这台机器上下载其他架构的软件包。
  3. 便于部署: 对于需要在无网络环境下部署软件的场景,提前下载好正确架构的软件包非常必要。

1、查看x86的系统信息

pdsyw@pdsyw-PC:~/Desktop$ uname -aLinux pdsyw-PC 4.19.0-amd64-desktop #6108 SMP Wed Sep 13 13:27:25 CST 2023 x86_64 GNU/Linuxpdsyw@pdsyw-PC:~/Desktop$ pdsyw@pdsyw-PC:~/Desktop$ cat /etc/os-version [Version] SystemName=UOS DesktopSystemName[zh_CN]=统信桌面操作系统ProductType=DesktopProductType[zh_CN]=桌面EditionName=ProfessionalEditionName[zh_CN]=专业版MajorVersion=20MinorVersion=1060OsBuild=11018.101.100pdsyw@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 arm64pdsyw@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 InRelease403Forbidden [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/InRelease403Forbidden [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 -iroot@pdsyw-PC:~# root@pdsyw-PC:~# root@pdsyw-PC:~# cd /var/cache/apt/archivesroot@pdsyw-PC:/var/cache/apt/archives# root@pdsyw-PC:/var/cache/apt/archives# ls -ltr总用量 3188-rw-r--r-- 1 root root 72732 10月 262022 libidn2-0_2.0.5.1-1+dde_arm64.deb-rw-r--r-- 1 root root 48212 10月 262022 tree_1.8.0-1_arm64.deb-rw-r--r-- 1 root root191084 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 root382978 9月14 17:16 libunistring2_0.9.10-1+d1_arm64.debdrwx------ 2 _apt root4096 12月4 16:19 partial-rw-r----- 1 root root 0 12月52023 lockroot@pdsyw-PC:/var/cache/apt/archives# tar zcvf tree.tar.gz *.debgcc-8-base_8.3.0.10-deepin1_arm64.deblibc6_2.28.23-deepin1_arm64.deblibgcc1_1%3a8.3.0.10-deepin1_arm64.deblibidn2-0_2.0.5.1-1+dde_arm64.deblibunistring2_0.9.10-1+d1_arm64.debtree_1.8.0-1_arm64.debroot@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 -aLinux pdsyw-PC 4.19.0-arm64-desktop #6030 SMP Tue Jun 27 15:28:10 CST 2023 aarch64 GNU/Linuxpdsyw@pdsyw-PC:~/Desktop$ pdsyw@pdsyw-PC:~/Desktop$ cat /etc/os-version [Version] SystemName=UOS DesktopSystemName[zh_CN]=统信桌面操作系统ProductType=DesktopProductType[zh_CN]=桌面EditionName=ProfessionalEditionName[zh_CN]=专业版MajorVersion=20MinorVersion=1060OsBuild=11014.100.100pdsyw@pdsyw-PC:~/Desktop$ 

7、查看系统是否安装tree

pdsyw@pdsyw-PC:~/Desktop$ treebash: 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 filespdsyw@pdsyw-PC:~/Desktop/tree$ 


通过上述步骤,你可以在统信UOS/麒麟KYLINOS操作系统中轻松实现跨架构的软件包下载,这对于软件开发和测试、以及多平台部署来说是一个非常实用的技巧。
希望这篇文章能帮助到需要进行跨架构软件部署的朋友们。如果你有任何问题或者更多的经验分享,请在评论区留言,我们一起讨论。
最后,如果你觉得这篇文章有用,请分享转发。点个关注和在看吧,让我们一起探索和学习更多关于Linux系统的知识!