首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Smart不能install...no包提供共享对象文件

Smart不能install...no包提供共享对象文件
EN

Stack Overflow用户
提问于 2016-04-18 20:35:14
回答 1查看 1.7K关注 0票数 2

问题

我正在尝试创建一个Bitbake食谱,它将在我的目标操作系统上安装Oracle JRE 8。

我尝试使用来自元甲骨文的元数据,但是由于为一般的JRE提供的.inc文件之一有一个JRE-7特定的URI,我遇到了一些困难。

我已经从元oracle-java中更改了一些元数据,并创建了自己的方法来完成此安装。

测试

JRE配方本身的构建

当自己构建菜谱时:

代码语言:javascript
复制
bitbake oracle-jse-jre

生成完成时没有出现错误。我在oracle-jse-jre食谱中添加了一个对oracle-jse-jre的依赖项,所以我可以从TMPDIR中执行以下操作

代码语言:javascript
复制
$ find . -name libavformat*so 
./work/core2-64-poky-linux/libav/9.18-r0/sysroot-destdir/usr/lib/libavformat.so.54.20.4
./work/core2-64-poky-linux/libav/9.18-r0/sysroot-destdir/usr/lib/libavformat.so
./work/core2-64-poky-linux/libav/9.18-r0/sysroot-destdir/usr/lib/libavformat.so.54
./sysroots/genericx86-64/usr/lib/libavformat.so.54.20.4
./sysroots/genericx86-64/usr/lib/libavformat.so
./sysroots/genericx86-64/usr/lib/libavformat.so.54

运行时依赖关系成功

如果我将oracle-jse-jre配方中的默认包添加到另一个菜谱xenoros_0.1.bbRDEPENDS_${PN}中,则可以运行bitbake xenoros并进行构建,而不会出现错误。

岩心图像失效

如果我将xenoros添加到core-image-xenorosIMAGE_INSTALL变量中,生成将失败,出现以下错误:

代码语言:javascript
复制
ERROR: Unable to install packages. Command '/home/presslertj/yocto-OS/poky-jethro-build/build/tmp/sysroots/x86_64-linux/usr/bin/smart --log-level=warning --data-dir=/home/presslertj/yocto-OS/poky-jethro-build/build/tmp/work/genericx86_64-poky-linux/core-image-my-server/1.0-r0/rootfs/var/lib/smart install -y message-generation@core2_64 catkin@core2_64 python-distutils@core2_64 ldd@core2_64 xenoros@core2_64 rosgraph@core2_64 gedit@core2_64 actionlib@core2_64 python-compression@core2_64 dhcp-server@core2_64 libpthread-stubs@core2_64 tf2@core2_64 python-email@core2_64 catkin-dev@core2_64 git@core2_64 rosbash@core2_64 python-json@core2_64 python-wstool@core2_64 connman@core2_64 ros-config@core2_64 packagegroup-core-boot@genericx86_64 libsdl-1.2-0@core2_64 rosjava@core2_64 quagga@core2_64 nginx@core2_64 rospy@core2_64 apt@core2_64 libc6@core2_64 netcat@core2_64 shadow@core2_64 bash@core2_64 roscpp@core2_64 roslaunch@core2_64 run-postinsts@all python-rosinstall@core2_64 elfutils@core2_64 openssl@core2_64 font-alias@all gradle@core2_64 python-catkin-pkg@core2_64 catkin-runtime@core2_64 catkin-runtime-dev@core2_64 pciutils@core2_64 base-passwd@core2_64' returned 1:
Loading cache...
Updating cache...               ######################################## [100%]

Computing transaction...error: Can't install oracle-jse-jre-1.8.0-u77r0@core2_64: no package provides libavformat.so.53(LIBAVFORMAT_53)(64bit)

ERROR: Function failed: do_rootfs
ERROR: Logfile of failure stored in: /home/presslertj/yocto-OS/poky-jethro-build/build/tmip/work/genericx86_64-poky-linux/core-image-my-server/1.0-r0/temp/log.do_rootfs.22073
ERROR: Task 7 (/home/presslertj/yocto-OS/poky-jethro-build/meta-myLayer/recipes-core/images/core-image-my-server.bb, do_rootfs) failed with exit code '1'

TMPDIR内部,我可以找到以下内容:

代码语言:javascript
复制
/sysroots/genericx86-64/usr/lib/libavformat.so.54

似乎存在版本错配,smart期望版本53,但提供了54。

恢复libav的版本

为了测试发生了什么,我制作了一个获取0.8.17 of libav (使用版本53)的食谱。当使用它而不是9.18时,我遇到了完全相反的问题,这是smart期望的,但是找不到版本54。

问题

  1. 智能如何确定这些共享对象文件的版本号?
  2. 那么do_rootfs()任务会导致构建在这个特定的时间失败吗?
  3. 我的具体问题有简单的解决办法吗?
EN

回答 1

Stack Overflow用户

发布于 2017-04-03 07:00:29

对于仍然遇到此错误的任何人:如元oracle-java repo的自述文件中所述。

代码语言:javascript
复制
There are some known install problems for JRE packages due to dependencies reported by RPM package manager. 
Switching to DEB or IPK packaging temporarily fixes this. 
ie: 
PACKAGE_CLASSES = "package_deb"  
or   
PACKAGE_CLASSES = "package_ipk"
in your 'local.conf' file
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36703804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档