Tôi đang cố gắng cài đặt một số gói phần mềm mới dưới openwrt sử dụng opkg và cài đặt đã thành công và chúng ta có thể thấy tập tin nhị phân thực sự tồn tại trong/usr/bin, và tôi có trird kiểm tra lld nhưng hóa ra giống nhau. như sau:Tệp ELF tồn tại trong/usr/bin nhưng hóa ra "-ash: file: not found"
[email protected] /usr/bin [#]# opkg files cfdisk
Package cfdisk (2.25.2-4) is installed on root and has the following files:
/usr/sbin/cfdisk
[email protected] /usr/bin [#]# ls /usr/sbin/
adjtimex arping ethtool iptables-save mkfs.ext3 pppd telnetd
airbase-ng besside-ng fdisk iw mkfs.ext4 rate.awk uhttpd
aireplay-ng brctl hostapd iwconfig modinfo rmmod wpa_supplicant
airmon-ng cfdisk insmod iwlist modprobe samba_multicall wpad
airmon-zc chroot ip6tables iwpriv nmbd smbd xtables-multi
airodump-ng crond ip6tables-restore lsmod ntpclient smbpasswd
airodump-ng-oui-update dnsmasq ip6tables-save miniupnpd ntpd swapoff
airserv-ng dropbear iptables mke2fs odhcp6c swapon
airtun-ng e2fsck iptables-restore mkfs.ext2 pdnsd tc
[email protected] /usr/bin [#]# cfdisk
-ash: cfdisk: not found
[email protected] /usr/bin [#]# ./cfdisk
-ash: ./cfdisk: not found
[email protected] /usr/bin [#]# ldd cfdisk
-ash: cfdisk: not found
[email protected] /usr/bin [#]# ldd id
libcrypt.so.0 => /lib/libcrypt.so.0 (0x77898000)
libm.so.0 => /lib/libm.so.0 (0x77872000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x7784e000)
libc.so.0 => /lib/libc.so.0 (0x777e2000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x778bc000)
[email protected] /usr/bin [#]# export
export HOME='/root'
export LOGNAME='root'
export OLDPWD='/usr'
export PATH='/usr/bin:/usr/sbin:/bin:/sbin'
export PS1='\[\033[35;1m\]\u\[\033[0m\]@\[\033[31;1m\]\h \[\033[32;1m\]$PWD\[\033[0m\] [\[\033[35m\]\#\[\033[0m\]]\[\033[31m\]\$\[\033[0m\] '
export PWD='/usr/bin'
export SHELL='/bin/ash'
export SHLVL='1'
export SSH_CONNECTION='192.168.1.152 29105 192.168.1.1 22'
export SSH_TTY='/dev/pts/0'
export TERM='xterm'
export USER='root'
[email protected] /usr/bin [#]#
cảm ơn.
Mã nhị phân cfdisk của bạn có thể liên kết với một trình liên kết động không tồn tại (ví dụ: ld-uClibc.so.0) Chạy 'readelf -a' trên nhị phân của bạn, tìm" interpreter interpreter " – nos
thanks @ nos, readelf đã không cài đặt được nêu ra .... tôi có nên sao chép tập tin đó vào phù thủy hệ thống ubuntu của tôi đã đọc sau đó kiểm tra xem nó ra? và tôi nghĩ rằng nó có thể gây ra bởi phiên bản linux.by cách, "ld-uClibc.so.0 "là từ" id "như lệnh' lld id' chỉ để so sánh với 'ldd cfdisk'. – coder
Chắc chắn, hãy chạy chính mình trên hệ nhị phân bất cứ nơi nào bạn muốn. Tôi nói rằng kể từ khi 'ldd id' hiển thị' ld-uClibc.so.0' thì thư viện đó tồn tại. và, cfdisk của bạn có thể không sử dụng, nhưng một số liên kết động khác không tồn tại trên máy của bạn. Có thể do cfdisk được biên dịch với một phiên bản khác của uClibc hoặc một thư viện C khác. – nos