Symlink

Yocto 中的符號連結

  • November 3, 2019

我正在嘗試在 Yocto 中創建一個符號連結以啟用預設情況下未啟用的 systemd 服務(順便說一下,apache2)。這是我的後期處理命令:

my_postprocess_function() {
   ln -s ${IMAGE_ROOTFS}/lib/systemd/system/apache2.service ${IMAGE_ROOTFS}/etc/systemd/system/multi-user.target.wants/apache2.service     
}

ROOTFS_POSTPROCESS_COMMAND += "my_postprocess_function; "

當然問題是源文件在目標上不存在,但是如果我使用正確的路徑(即/lib/systemd/system/apache2.service)它在開發機器上不存在,那麼配方就會失敗。

在 rootfs(子)路徑中建立符號連結的正確方法是什麼?

通常,您可以創建指向不存在的目標的符號連結。例如,在任何 shell 中嘗試

ln -s /no/such/file xxx

它將創建連結xxx。因此,只需從您的命令中刪除第一個 ${IMAGE_ROOTFS} :

ln -s /lib/systemd/system/apache2.service ${IMAGE_ROOTFS}/etc/systemd/system/multi-user.target.wants/apache2.service

引用自:https://unix.stackexchange.com/questions/547786