【发布时间】:2018-09-06 14:28:00
【问题描述】:
我有一个自定义 Yocto 'image' 配方,它使用 IMAGE_INSTALL += "... " 来构造图像,其中还包含 Python 3.5。不幸的是,没有创建常用的/usr/bin/pdb 符号链接,我的用户希望能够从命令行运行pdb。所以我想在图像中为此创建一个符号链接。如果它在目标上运行,它将是这个命令的结果:
ln -s /usr/lib/python3.5/pdb.py /usr/bin/pdb
我知道我可以使用这种构造在图像配方中创建自定义任务:
addtask create_pdb_symlink before do_image
do_create_pdb_symlink () {
ln -s /usr/lib/python3.5/pdb.py ${D}/usr/bin/pdb
}
但这不起作用,因为我猜想使用${D},而且我不认为文件系统是在那个时候上演的。它会生成此错误:
DEBUG: Executing shell function do_create_pdb_symlink
ln: failed to create symbolic link
'/home/user/project/build/tmp/work/custom-linux/my-image/1.0-r0/image/usr/bin/pdb': No such file or directory
WARNING: exit code 1 from a shell command.
检查文件系统确认/home/user/project/build/tmp/work/custom-linux/ 存在,但/home/user/project/build/tmp/work/custom-linux/my-image 不存在。
custom-linux 目录中有一些目录,其中一个名为rootfs,看起来非常有用,但我不确定我的任务是否应该在my-image 目录下进行。
所以我的问题是:
- 这是正确的方法吗?
- 或者我应该创建一个全新的配方来构建这个单一的符号链接?
- 还是我应该创建一个
python3-core.bbappend来完成这项任务? - 或者这不是由 python 配方本身创建的原因吗?
【问题讨论】:
标签: python yocto pdb bitbake rootfs