Mam problem z kompilacją w Bashu. Ale po kolei. Tworzę sobie katalog a w nim plik tekst.c
. Za pomocą komendy gedit tekst.c
zapisuje program i go zapsiuje. po wpisaniu gcc tekst.c
wychodzi komunikat nie odnaleziono polecenia gcc
. Co w takiej sytuacji?
zainstalować gcc.
sudo apt-get update
sudo apt-get install build-essential
Jeśli nie rozpoznaje jakiegoś polecenia, to znaczy, że nie masz kompilatora gcc w zmiennych środowiskowych (environment path).
W tym wypadku, najprawdopodobniej dlatego, że nie masz go zainstalowanego. ( czasem to nie jest takie oczywiste)
Najłatwiej zainstalować go przez Package Manager, na debian/ubuntu będzie to apt, archLinuch domyślnie ma pacman, centos ma yum itd..
Któraś z tych komend wpisana w terminalu powinna zadziałać, chyba, że używasz jeszcze czegoś innego ;)
sudo apt-get update
sudo apt-get install build-essential
sudo yum updateinfo
sudo yum groupinstall 'Development Tools'
sudo pacman -Syy
sudo pacman -S gcc !!!
Jęśli instalacja się powiedzie możesz sprawdzić wersję gcc wpisując w konsolę:
gcc --version
Następnie kompilujesz kod i uruchamiasz plik wykonywalny:
gcc program.c -o output.o
./output
W przypadku, gdy nie sprecyzujesz nazwy pliku wyjściowego, domyślnie przybiera on nazwę a.out. Po więcej szukaj w gcc --help.
Po wpisaniu pierwszej komendy wyszło w większości:
Próbowanie nowego serwera lustrzanego. [...] Could not resolve host [...] Nieznany błąd.
Następnie wpisuję drugą komendę. Prosi mnie o podanie hasła. I komunikat:
[moja nazwa uzytkownika] nie występuje w pliku sudoers
Nie wiem. Może reinstall pomoże? To wersja CentOSa 7.5 w wersji agh.ftj
ze strony Linuksa.
Musisz wykonać jeszcze kilka kroków, które znajdziesz w linku od @Dregorio niżej, następnie wróć tutaj.
Upewnij się, że masz połączenie z internetem i jeszcze raz spróbuj wykonać te polecenia, pamiętaj, że sudo oznacza, że uruchamiasz polecenie z poziomu administratora, roota, dlatego zwykle po pierwszym takim poleceniu, zapyta cię o hasło. Na przyszłość radzę ci zawsze instalować wersję anglojęzyczną, łatwiej będzie ci wyszukiwać rozwiązania w internecie.
sudo yum updateinfo
sudo yum groupinstall 'Development Tools'
Powodzenia :)
Edit:
Po kilku próbach w końcu się udało, potrzebne było jeszcze wyczyścić cache i uruchomić dhclint w centos domyślnie jest on wyłączony:
rm -fr /var/cache/yum/*
yum clean all
sudo dhclient