ubantu中apt-get安装的依赖全部打包

文章介绍了如何在国产化系统中,特别是基于Ubuntu的ARM和x86环境下,进行软件依赖的打包迁移。首先,通过`apt-get`安装的依赖保存在`/var/cache/apt/archives`,打包该目录为`.tar.gz`文件,然后在目标服务器上解压并使用`dpkg`安装。对于Python环境,使用`pipfreeze`生成依赖清单,`pipdownload`下载依赖到指定目录,最后在新环境中用`pipinstall`离线安装。这种方法有助于在不同服务器间快速迁移配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在适配国产化系统,其中有arm和x86的,虽然是国产化系统,其实只是Ubuntu的包装罢了;好不容易将海光型号的适配完毕,就要进行测试,但是这些海光环境并没有进行总结,因此想把apt-get安装的东西一股脑儿给迁移过去,在网上查到解决方案,记录一下:
1、切换到apt-get的安装目录
apt-get 所安装的依赖都在个目录下

cd /var/cache/apt/archives
ls

如下图:
在这里插入图片描述
2、将所有依赖打包:
直接将这个目录打包

tar -czvf archives.tar.gz archives/

3、拿到另一个服务器,直接安装
解压后,这里依赖中可能存在几个文件,并不是依赖需要删除,例如下图:
在这里插入图片描述

# 解压
tar -zxvf archives.tar.gz
cd archives/
# 安装所有依赖
sudo dpkg -i *

其他命令:

# 查看服务器型号
uname -a
Pyhton打包所有依赖清单:

1、首先生成已安装包的清单

pip freeze >requirements.txt

2、从网络上下载 所有的依赖到指定文件夹中

pip download  -r requirements.txt  -d  /root/gsh/opt/

3、离线批量安装依赖包

将以上的依赖打包并同requirements.txt 一起拿到其他的服务器(前提:此服务器已经安装了python环境和pip),使用以下命令即可安装:

pip install --no-index --find-links= /opt/pypage -r requirements.txt
### Ubuntu 系统中使用 `apt-get` 进行离线安装的方法 在 Ubuntu 中实现 `apt-get` 的离线安装可以通过多种方式完成,以下是几种常见且有效的方法: #### 方法一:利用 `apt-offline` `apt-offline` 是一个专门用于处理离线环境的工具,可以用来生成所需的依赖列表并下载这些依赖。 1. **安装 `apt-offline` 工具** 在联网环境中先安装此工具: ```bash sudo apt update && sudo apt install apt-offline ``` 2. **生成签名文件** 在目标离线机器上运行以下命令以生成签名文件: ```bash sudo apt-offline set /path/to/signature-file.sig --update --upgrade ``` 此处 `/path/to/signature-file.sig` 表示保存签名文件的位置[^1]。 3. **传输签名文件至联网设备** 使用 U 盘或其他存储介质将签名文件复制到有网络连接的计算机上。 4. **下载更新数据** 在联网设备上运行以下命令以下载所需的数据: ```bash apt-offline get signature-file.sig --bundle bundle.zip ``` 所需的所有文件会被打包成 `bundle.zip` 文件[^2]。 5. **应用更新到离线机器** 将 `bundle.zip` 文件传回离线机器,并执行以下命令: ```bash sudo apt-offline install bundle.zip ``` 之后即可正常进行升级或安装操作。 --- #### 方法二:手动下载 `.deb` 及其依赖项 如果不想使用额外工具,则可采用如下流程手动解决依赖关系问题。 1. **收集依赖信息** 利用一台能够访问互联网的工作站查询目标程序以及其所有依赖项的信息。例如: ```bash apt-cache depends package-name ``` 或者更精确的方式是模拟安装过程查看具体需求: ```bash apt-get -s install package-name ``` 2. **批量下载 .deb 文件** 基于上述分析结果,在另一台具备网络条件的 PC 上逐一抓取对应版本号的 deb 软件。推荐借助 `wget` 或其他 HTTP 客户端从官方镜像站点获取资源链接地址。 另外也可以尝试直接调用下面这条指令一次性拉取主组件连同附属子部件一起存放到指定路径下供后续迁移用途: ```bash apt download $(apt rdepends package_name | grep -v Reverse) ``` 3. **部署到无网终端** 把先前累积下来的成果转移过去给待配置实体加载进来形成可用状态即告成功结束整个环节工作流。 --- #### 方法三:构建本地APT仓库 对于频繁需要维护多个相同架构类型的节点场合来说建立专属定制化私密型 APT 存储库不失为一种高效长久之计。 1. 准备阶段——挑选合适位置作为根目录存放各类已采集完毕的标准格式压缩文档形式呈现出来的索引清单档案; 2. 构建索引结构体系——运用诸如 `dpkg-scanpackages` 类实用脚本生成符合标准协议规定的描述性元数据记录条目集合体; 3. 设置源指向规则说明——修改客户端侧 configuration file 加入新增加好的自定义 URI 地址入口从而达成无缝衔接效果表现出来。 --- ```python import os def create_local_repo(repo_path, packages_dir): """ Create a local repository by scanning the given directory of Debian packages. Args: repo_path (str): Path to store the generated Packages.gz. packages_dir (str): Directory containing all downloaded .deb files. Returns: None """ if not os.path.exists(packages_dir): raise FileNotFoundError(f"The specified packages directory does not exist: {packages_dir}") command = f"cd {repo_path} && dpkg-scanpackages {packages_dir} /dev/null | gzip > Packages.gz" os.system(command) create_local_repo("/var/local-repo", "/path/to/downloaded/packages/") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值