Muszę uruchomić configure
plik na moim telefonie z Androidem, więc myślę, że najlepszym sposobem na to jest użycie adb shell
polecenia.
Korzystam z emulatora Androida na platformie Windows-7 i tam uruchamiam adb shell
polecenie w oknie DOS. Używając cd
polecenia Mam zmieniającą się do katalogu, w którym mój configure
plik jest, a potem mam wykonując następujące polecenie: ./configure
. Otrzymuję następujący błąd:
./configure: permission denied
Próbuję więc uruchomić adb w trybie root z adb root
- ale najwyraźniej mój adb jest już w trybie root (ponadto mam znak „#” przed każdą linią mojej powłoki adb).
Próbowałem także użyć, chmod
ale nie widzę żadnej różnicy przed i po wykonaniu tego polecenia ( ls -la
), więc może problem jest tutaj (Jak mogę uruchomić chmod
polecenie?).
Może ktoś tutaj może mi pomóc z moim problemem, a jeśli masz wyjaśnienie, dlaczego nie mam pozwolenia na uruchomienie mojego configure
pliku, będzie świetnie.
Dzięki.
PS: Moim celem jest użycie pakietu net-snmp na platformie Android poprzez kompilację źródeł tego projektu bezpośrednio na platformę.
/sdcard
jest zwykle montowany znoexec
flagą w systemie Android, więc nie można z niego wykonywać plików binarnych. Poleciłbym spróbować przenieść go w inne miejsce (często/data/local
jest używany do takich rzeczy). Sprawdź, czy to rozwiąże problem./usr/local/tmp
katalogu (całynet-snmp-5.7.2
katalog w/sdcard
.Odpowiedzi:
Wynika to z 2 rzeczy:
noexec
flagą, jak podano w komentarzu. Zatrzymuje to wykonywanie plików.Rozwiązanie:
net-snmp-5.7.2
katalog do/data/local/tmp
katalogu jako root.configure
plik tak, aby był wykonywalny, uruchamiając gochmod 0777 /data/local/tmp/net-snmp-5.7.2/configure
jako root./data/local/tmp/net-snmp-5.7.2/configure
i naciskając enter.Uwaga
Wszystko to należy zrobić jako użytkownik root :)
źródło
Jak wyjaśniono w komentarzach i odpowiedzi Liama , wynika to z
noexec
flagi używanej przez system podczas montowania karty SD. Jeśli Twójconfigure
plik jest skryptem powłoki (jak zwykle), możesz go oszukać, aby go wykonać:cd
do katalogu, jak opisano powyżej, a następnie uruchomsh configure
.sh
jest interpreterem powłoki i ten plik binarny powinien znajdować się w miejscu/system/bin
, w którym można wykonywać pliki. Podanie skryptu jako pierwszego argumentu spowoduje otwarcie nowego procesu powłoki, który wykonujeconfigure
skrypt.źródło
sh configure
załatwia sprawę.