Nu se poate executa Makefile, chiar și ca root! (Unix, Face, Permisiune Refuzată)

GremlinsBane a intrebat.

Încerc să compilez un fișier c program, dar când încerc să execut fișierul makefile, primesc mesajul „Permission denied”.

Iată ce am făcut :

[email protected]:/usr/bin# MakeFile
-bash: /usr/bin/MakeFile: Permission denied
[email protected]:/usr/bin# 

Comentarii

  • Makefile-urile sunt de obicei executate în mod explicit cu make de ex. make -f MakeFile sau doar make dacă ați numit fișierul în mod corespunzător (va căuta un fișier makefile sau Makefile în directorul curent în mod implicit). –  > Por steeldriver.
  • De ce aveți un fișier Makefile în /usr/bin. În mod normal, aceasta nu este locația pentru construirea programelor. –  > Por phg.
  • Această întrebare pare a fi unul dintre acele coșmaruri care nu au niciun sens, dar sunt înfricoșătoare ca naiba. –  > Por Dmitri Grigoriev.
  • Nu înțeleg de ce această întrebare este downvoted –  > Por radrow.
1 răspunsuri
Kusalananda

Mai întâi de toate:

  1. Nu compilați lucrurile ca root, este total inutil. Este posibil să fie necesar pentru final make install, dar cel mai probabil nu și altfel.
  2. Nu compilați lucrurile în /usr/bin, acolo sunt instalate utilitățile (sistemului de bază).

În schimb:

  1. Compilați lucrurile ca „dumneavoastră” (utilizator obișnuit).
  2. Compilați lucrurile undeva în directorul dvs. personal, de exemplu într-un fișier temporar ~/build director temporar sub care ați despachetat sursele.

Makefile-ul nu este un executabil. Este un fișier care conține instrucțiuni pentru make programului pentru cum să construiască o anumită bucată de software.

Folosiți Makefile prin simpla tastare make.

Dacă software-ul a fost livrat cu instrucțiuni de instalare (căutați un fișier INSTALL file), citiți-le.

Comentarii

  • Doamne, mă simt prost. Vă mulțumesc pentru ajutor! –  > Por GremlinsBane.
  • @GremlinsBane Cu cât te simți mai prost, cu atât este mai puțin probabil să te afli din nou în aceeași situație. De asemenea, am făcut cu siguranță lucruri de genul ăsta! 🙂 –  > Por Kusalananda.
  • Asta e încurajator! –  > Por GremlinsBane.
  • Un truc obișnuit în Debian este ca un debian/rules să fie un fișier makefile executabil, cu #!/usr/bin/make -sf ca interpretor al acestuia. Dar, la nivel de începător, da, makefile-urile nu sunt direct executabile. –  > Por JdeBP.