工具/软件:Linux
您好!
到目前为止、在所有 Sitara Linux SDK 中、Linux-devkit/sysroots/x86_64 - Arago-linux/usr/bin 中都有 opkg 软件包管理器。
在部署到目标之前、我们使用它来编辑文件系统映像、主要是删除不需要的软件包。
但是、在 SDK 5.00 (目前最新版本)中、此 opkg 可执行文件不起作用。
在安装了 SDK 5.00的 Ubuntu 主机上重现的步骤。
1.在家庭和 CD rootfs 中创建目录 rootfs
2. sdk/filesystems 的 sudo tar xvf ~/SDK/filesystem/tisdk-rootfs-image-am335x-evm.tar.xz 和 cd ..
3. sudo ~/SDK/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/opkg -o rootfs 列表
将没有输出。
strace-ing opkg 执行显示了这种情况(在初始库加载等之后)。
open ("/home/USER/rootfs /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/sysroots/x86_64-arago-linux/etc/opkg、O_RDONLY|O_NONBLOC块|O_DIRECE|O_CLOEXEC)=-1 ENOENT (无此类文件或目录)
lstat ("/home/USER/rootfs /run"、{st_mode=s_IFDIR|0755、st_size=4096、...}) = 0
creat ("/home/USER/rootfs /run/opkg.lock "、0640)= 3.
fcntl (3、F_SETLK、{type=F_WRLCK, whence=seek_CUR、start=0、 长度=0})=0
getpid() = 5964
mkdir ("/tmp/opkg-RRhoh0、0700") = 0
STAT ("/home/USER/rootfs /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/sysroots/x86_64-arago-linux/var/cache/opkg "、{st_mode=S_IFDIR|0755、st_size=4096、...}) = 0
STAT ("/home/USER/rootfs、{st_mode=s_IFDIR|0755、st_size=4096、...}) = 0
STAT ("/home/USER/rootfs //tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/sysroots/x86_64-arago-linux/var/lib/opkg/info "、{st_mode=S_IFDIR|0755、st_size=4096、...}) = 0
STAT ("/home/USER/rootfs //tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/sysroots/x86_64-arago-linux/var/lib/opkg "、{st_mode=S_IFDIR|0755、st_size=4096、...}) = 0
ldstat ("/home/USER/rootfs //tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy/sysroots/x86_64-arago-linux/var/lib/opkg/status、0x7fffb19eedb0)=-1 ENOENT (无此类文件或目录)
open ("/tmp/opkg-RRhoh0、O_RDONLY|O_NONBLOC块|O_DIRECE|O_CLOEXEC)= 4
fstat (4、{st_mode=s_IFDIR|0700、st_size=4096、...}) = 0
fchdir (4) = 0
getdents (4、/* 2个条目*/、32768) = 48
getdents (4、/* 0 entries */、32768) = 0
chdir ("..) = 0
rmdir ("/tmp/opkg-RRhoh0) = 0
Close (4) = 0
fcntl (3、F_SETLK、{type=F_UNLCK、whence=seek_CUR、start=0、 长度=0})=0
Close (3) = 0
lstat ("/home/USER/rootfs /run/opkg.lock、{st_mode=s_IFREG|0640、st_size=0、...}) = 0
unlink ("/home/USER/rootfs /run/opkg.lock)= 0
EXIT_group (0) =?
++退出,0 ++
删除某些软件包的 opkg 命令将同样失败,并显示消息“No packages installed or removed.”(未安装或删除软件包。)。
此过程在 SDK 4.03之前一直有效、包括 SDK 4.03。 旧款鞋带不 会显示这些奇怪的东西
在 SDK 5.00 libopkg.so.1中确实可以找到的长名称 xxxxxxxxxxx / yyyyy。
问题是:SDK 5.00中的主机 opkg 是否可用于编辑 targetg 文件系统映像、
如果是、实现这一目标的选项、环境变量等是什么。
谢谢