Linksys WRVS4400N ürün yazılımını derlemeye çalışıyorum.
lsvar olduğunu gösterir ama koşmaya çalıştığında bash var olmadığını söyler. Ben de yapabilirim catve bir kabuk komut dosyası değil, yürütülebilir bir dosyadır.
Linksys WRVS4400N ürün yazılımını derlemeye çalışıyorum.
lsvar olduğunu gösterir ama koşmaya çalıştığında bash var olmadığını söyler. Ben de yapabilirim catve bir kabuk komut dosyası değil, yürütülebilir bir dosyadır.
Yanıtlar:
Çıktı çıktı file mkdepolduğunu söyledi 32-bit elf. 64 bit VM çalıştırıyorsunuz.
Misal:
$ uname -m
x86_64
$ ls -l ./example
-rwxr-xr-x 1 root root 92312 2011-08-18 16:52 ./example
$ file ./example
example: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
$ ./example
-bash: ./example: No such file or directory
Sadece yeni bir 32-bit VM yapın ve orada derleyin.
Yürütülebilir olarak ayarlanmış mı? Değilse, o zaman chmod +x filename. PATH'ınızda mı? Değilse, ./filenamesadece değil de arayın filename.
Bir dosyayı yürütmeye çalıştığınızda ve bash bunun olmadığını söylüyor, bazen bash dosyasının bir komut dosyası olduğuna ve ilk satırda (#!) Belirtilen yorumlayıcının mevcut olmadığına inanıyor demektir.
Dosyalar isimlendirilmişse mkdep, çıktısını
./mkdep
file mkdep
hd mkdep | head
strace ./mkdep 2>mkdep.strace.txt
Strace komutu, yapılan sistem çağrıları hakkında bilgi verir, örneğin strace ls 2>ls.taşağıdakileri ls.t'ye koyar
yürütmek ("/ bin / ls", ["ls"], [/ * 22 vars * /]) = 0
brk (0) = 0x8061000
access ("/ etc / ld.so.nohwcap", F_OK) = -1 ENOENT (Böyle bir dosya veya dizin yok)
mmap2 (NULL, 8192, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0) = 0xb7f82000
access ("/ etc / ld.so.preload", R_OK) = -1 ENOENT (Böyle bir dosya veya dizin yok)
open ("/ etc / ld.so.cache", O_RDONLY) = 3
fstat64 (3, {st_mode = S_IFREG | 0644, st_size = 32311, ...}) = 0
mmap2 (NULL, 32311, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f7a000
kapat (3) = 0
access ("/ etc / ld.so.nohwcap", F_OK) = -1 ENOENT (Böyle bir dosya veya dizin yok)
open ("/ lib / librt.so.1", O_RDONLY) = 3
oku (3, "\ 177ELF \ 1 \ 1 \ 1 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 0 \ 3 \ 0 \ 3 \ 0 \ 1 \ 0 \ 0 \ 0 \ 240 \ 30 \ 0 \ 0004 \ 0 \ 0 \ 0 "..., 512) = 512
fstat64 (3, {st_mode = S_IFREG | 0644, st_size = 30624, ...}) = 0
strace ./mkdep 2>mkdep.strace.txtiçin neler olup bittiğine dair bir fikir vermelisin. Depolardan şerit yüklemeniz gerekebilir.
Senaryonuzdaki IFS'yi değiştiriyor musunuz? Ben de benim komut dosyalarından birinde aynı sorunla karşılaştı ve aynı düşündüm (32 bit dosya 64 bit makinede kabuk komut dosyası tarafından okunuyor). Ama benim durumumda sorun bu değildi. Bunun yerine, IFS'yi virgül ',' olarak değiştiriyordum ve ayrıştırıcıyı bir şekilde karıştırıp bu hataya neden olan yeni bir satıra geri dönüyordum.
Ben sadece IFS herhangi bir değişiklik kaldırıldı ve şimdi gayet iyi çalışıyor !!!