我试图了解 Linux 发行版的 ISO 映像文件的内容以及安装过程是如何进行的。在这里,我专门谈论CentOS 6.4 的最小版本。
所以ISOLINUX被触发,我得到菜单显示。然后我点击安装。
它加载内核和 initrd 文件系统。
我的问题是:
Anaconda 是如何被调用的?
images/install.img 文件的作用是什么?(谁调用/安装它?)
Anaconda 是否安装 Packages/*.rpm?如果我想在那里添加一个,我可以吗?会安装吗?
我正在使用一个 python 程序,该程序使用 conda 在单独的变量中安装的一些模块。因此,在运行脚本之前,我从 unix shell 调用以下命令来获取环境:
conda activate my-rdkit-env
Run Code Online (Sandbox Code Playgroud)
是否可以在我的 python 脚本中调用它?我尝试按照以下方式进行操作,但没有成功
import subprocess
subprocess.run('conda init bash', shell=True)
#subprocess.run('conda activate my-rdkit-env', shell=True)
Run Code Online (Sandbox Code Playgroud) 我正在构建一个用于安装 Linux 映像(Oracle Linux,5.8)的可引导 ISO。这是使用带有 kickstart 文件的 anaconda 来选择要加载的包。其中一些软件包在其 %post 部分因依赖问题而失败。
例如,安装完成后在 /root/install.log 中可以看到:
Installing thirdparty-tools-1.00-09.noarch
/var/tmp/rpm-tmp.97891: line 1: ln: command not found
/var/tmp/rpm-tmp.97891: line 2: ln: command not found
/var/tmp/rpm-tmp.97891: line 3: ln: command not found
/var/tmp/rpm-tmp.97891: line 4: ln: command not found
error: %post(thirdparty-tools-1.00-09.noarch) scriptlet failed, exit status 127
Run Code Online (Sandbox Code Playgroud)
我试图找出是否可以控制/覆盖包排序,而无需编辑任何 RPM 来添加依赖项。我一直在浏览 anaconda/kickstart 文档(https://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_3._Package_Selection),并在其他地方广泛搜索,所以我认为答案实际上是“不,你可以”不这样做',这将是一种耻辱。
问题是我试图包含各种第三方RPM,它们不受我的控制并且已经过数字签名。这些包括在 %post 部分中的一些处理。这个处理需要一些标准的Linux 命令,例如'ln'、'touch' 等,这些命令在coreutils 包中提供。第三方包目前不包含对 coreutils 包的依赖,但显然它应该确实如此。Anaconda 使用自己的偏序算法来选择安装这些包的顺序,并且在安装coreutils 包之前安装第三方包。显然,正确的解决方案是让第三方修复这些 RPM;然而,这可能需要太长时间。
我希望它们可能是 kickstart 文件的一些隐藏/未记录的选项,这可能会添加额外的依赖项。理想情况下,我希望能够将这样的内容添加到 %packages 部分: …
我刚刚安装了 Fedora Workstation 30。启动时,我选择了“测试此媒体并启动 Fedora-Workstation-Live”。屏幕显示:
/dev/disk/by-label/Fedora-WS-Live-30-1-2: b340a38cf5c1f09fdd769e259e449119
Fragment sums: 6dc04c22c2275... (a bit long to type)
Fragment count: 20
Supported ISO: no
Press [Esc] to abort check.
Checking: 025.5%
Run Code Online (Sandbox Code Playgroud)
并顺利完成检查。我在 Windows 10 上通过 Etcher (IIRC) 创建了 USB 介质。
安装没问题,但我对“Supported ISO: no”这一行感到有点困惑,尽管这个 ISO 直接来自 getfedora.org 网站。
“支持的 ISO:否”到底是什么意思?
我正在尝试在我的实验室 XenServer 设置上对基本 CentOS 安装的磁盘吞吐量进行基准测试,并且正在从 CentOS 6.4 最小 CD 安装。但是,安装 ISO 会启动到文本模式的 anaconda 设置,它只为我提供了通过一些基本设置步骤进行下一步的选项。
从记忆中,我确信完整的 CD 曾经允许我进行分区、选择挂载点和文件系统,但它是一个庞大的 ISO,其中包含许多我可能永远不会使用的软件包。这个最小的只是提供“使用整个磁盘”、“替换现有的 linux”和“使用可用空间”,然后愉快地开始并创建一个 LVM 卷组、根和数据卷,并将两者都格式化为 ext4。
LVM 的好处值得赞赏,但不能忍受,我只想要普通的旧 MSDOS 标记的主要 ext3 分区用于/boot
和/
(可能还有一个用于/home
)。
对于这么简单的事情,我是否必须使用完整的 CD?