Имам персонализирана рецепта за „изображение“ на Yocto, която използва 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?