首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有pkgsrc命令“冻结”所有已安装的软件包?

是否有pkgsrc命令“冻结”所有已安装的软件包?
EN

Stack Overflow用户
提问于 2020-01-19 14:43:44
回答 1查看 74关注 0票数 1

我不知道是否有一个特定的术语,我的意思是“冻结”。我正在寻找的是一个命令,它是pkgsrc对应的命令:

  • 用于Python存储库的pip freeze命令
  • 来自Homebrew的brew bundle dump命令

我的动机是很容易地将我的系统从一台机器迁移到另一台机器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-07 21:11:57

有几种解决这个问题的方法,根据你想要做的事情,任何排列都可能有效。

下面的建议是基于我在OpenIndiana中使用的pkgsrc,所以请记住,如果您在不同的操作系统上,情况可能会有所不同。

让我们定义两个术语:

OldMachine =您正在迁移的机器

NewMachine =您要迁移到的机器

在开始之前,先看看pkgin (pkgsrc的包管理器) 文档;您需要熟悉它。

任务

本节列出了可能的任务列表,这些任务可能与您的目标相关,也可能与您的目标无关(见下文)。

1:在OldMachine上生成已安装软件包的列表

# pkgin list

我相信您可以通过以下方式将输出保存到文本文件中:

# pkgin list >> /Path/To/List/Of/Packages.list

不要担心.list扩展名;任何文本编辑器仍然会读取该文件。

2:引导OldMachineNewMachine上的pkgsrc分支。

检查特定于操作系统的pkgsrc文档,了解如何确定您在哪个分支上,然后如何引导该分支。例如,这是Illumos

3:在NewMachine上安装生成的软件包列表

有几种方法可以做到这一点,包括但不一定限于:

  1. 编写一个脚本或命令,对# pkgin -y install中的所有包执行Packages.list
  2. 在文本编辑器中,将Packages.list从垂直列表转到水平列表。您可以手动或通过RegEx完成此操作。下面是一个关于如何在崇高文本中实现它的示例。然后将文本复制并粘贴到# pkgin -y install的末尾
  3. 编写一条行命令来执行此操作。我确信它们是存在的,我只是不知道如何亲手写一个

4:从OldMachine导入包设置

您必须手动查找您自定义的所有.conf (或类似文件)文件,然后将它们传输到NewMachine文件系统上的匹配位置,确保每个文件的内容不会引用NewMachine上的无效位置/设置/等等。

目标

本节有可能的目标,然后适当地结合上述任务来实现这些目标:

A1:您想简单地安装所有相同软件包的最新版本(推荐)

任务1和3

A2:您想要执行A1 +导入设置

任务1、3和4

B1:您希望安装包的特定分支版本

任务1-3

B2:您想要执行B1 +导入设置

任务1-4

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59811116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档