一千萬個為什麽

搜索

FAI存儲庫任務期間執行的操作不會持續



我的存儲庫任務鉤子腳本(請參閱 FAI任務列表)似乎對安裝的最終狀態有影響。為什麽不?這是預期的行為?如果是這樣,為什麽?如果有的話,我能做些什麽來解決這個限制?

背景

I'm trying to use FAI to install Docker CE from the Docker package repository (see Installing Packages from a 3rd Party Repository with FAI). Following the official instructions, I'm trying to use the add-apt-repository utility to add the package repository to the APT repository index. In order to get the add-apt-repository utility I'm trying to install the software-properties-common package. My plan was to use a hook script for the repository phase to install software-properties-common and then use add-apt-repository to add the Docker repository.

解決方案嘗試

我為 SOFTPROPCOMM 類創建了以下儲存庫任務鉤子腳本:

#!/bin/bash

# /srv/fai/config/hooks/repository.SOFTPROPCOMM

# Print command
echo apt-get install software-properties-common

# Execute command
apt-get install software-properties-common

然後我執行 dirinstall創建chroot環境

sudo fai \
--verbose \
--cfdir '/etc/fai' \
--class 'SOFTPROPCOMM' \
--cspace 'file:///srv/fai/config' \
dirinstall 'softpropcomm' \
| tee fai-softpropcomm.log

然後我進入chroot環境:

sudo chroot softpropcomm

並從chroot環境中檢查 add-apt-repository 應用程序的存在:

which add-apt-repository

並且還存在 software-properties-common 包:

dpkg -l | grep -Fi software-properties-common

應用程序和軟件包似乎都不存在。所以我嘗試手動安裝軟件包(仍然在chroot中):

apt-get install software-properties-common

安裝按照預期為新軟件包(尚未安裝在系統中的軟件包)進行,並且軟件包安裝完成後,我可以驗證 add-apt-repository 應用程序是否已成功安裝。這似乎表明,存儲庫任務鉤子腳本沒有成功執行。所以我看看我的日誌文件(回到主機 - 在chroot之外):

cat fai-softpropcomm.log \
| grep -Fi -B1 -A2 software-properties-common

這會產生以下輸出:

Calling hook: repository.SOFTPROPCOMM
apt-get install software-properties-common
Reading package lists...
Building dependency tree...
Reading state information...
software-properties-common is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 86 not upgraded.
repository.SOFTPROPCOMM OK.

這似乎表明,在執行我的鉤子腳本之前已經安裝了該程序包,這非常令人困惑。

調試嘗試

為了測試發生了什麽,我在存儲庫任務鉤子腳本中添加了一條命令來寫入新文件。這是新的鉤子腳本:

#!/bin/bash

# /srv/fai/config/hooks/repository.SOFTPROPCOMM

echo "Testing repository-task hook script"
echo "Writing to file /test"
echo "Success" > /test
echo "Checking contents of /test"
cat /test

安裝過程的輸出包括以下用於存儲庫任務掛鉤的塊:

[...]
Calling hook: repository.SOFTPROPCOMM
Testing repository-task hook script
Writing to file /test
Checking contents of /test
Success
repository.SOFTPROPCOMM OK.
[...]

但是當我輸入chroot時,文件不在那裏。

轉載註明原文: FAI存儲庫任務期間執行的操作不會持續

一共有 0 個回答: