2010-07-09 14 views
18

Mam dostęp do komputera w bibliotece publicznej i chcę wypróbować niektóre C++ i być może inny kod. Problem polega na tym, że g ++ nie jest zainstalowany i nie mogę go zainstalować za pomocą pakietów, ponieważ nie mam dostępu do roota. Czy istnieje "inteligentny" sposób na stworzenie pełnego środowiska do programowania w katalogu domowym?Zainstaluj gcc na Linuksie bez uprawnień administratora

Mam zainstalowany gcc (mogę skompilować kod C). Mam także spójny katalog domowy. Nie wiem, gdzie znaleźć skompilowany g ++, znalazłem tylko źródło, ale nie wiem, co z nim zrobić. Próbowałem poprosić ich o zainstalowanie, ale to nie zadziałało :)

+0

Czy w bibliotece jest zainstalowany gcc? – Omnifarious

+0

Mogę skompilować źródło C używając gcc. –

Odpowiedz

8

Możesz uruchomić skrypt konfiguracyjny za pomocą parametru --prefix: ../gcc-4.5.0/configure --prefix=/home/foo/bar. Ponieważ jest bardzo prawdopodobne, że standardowa biblioteka C++ jest inna niż ta w systemie, musisz ustawić export LD_LIBRARY_PATH=/home/foo/bar/lib, zanim będziesz mógł uruchomić program skompilowany przez ten kompilator.

+2

Jest to zależne od istnienia istniejącego zestawu narzędzi kompilatora do ładowania początkowego. – reece

+1

I pliki nagłówkowe. – Omnifarious

+0

Próbowałem ./configure --prefix = ... ale to daje mi: configure: błąd: nie można znaleźć install-sh, install.sh lub shtool w "." "./ .." "./../ .." –

1

Kiedyś, dawno temu (1992 r. Lub tak), przeszedłem przez coś podobnego do tego, gdy kupiłem system SCO bez środowiska programistycznego. Załadowanie go do pełnego środowiska programistycznego było gigantycznym bólem i wcale nie było łatwe. Posiadanie plików nagłówkowych biblioteki lub gcc w systemie znacznie ułatwiłoby pracę.

To zależy w dużym stopniu od tego, jak nieprzyjemna jest biblioteka na temat tego, jakie rzeczy są zainstalowane. Jeśli nie ma tam gcc, twoja praca staje się nieco trudniejsza. Jeśli nie ma tam plików nagłówkowych dla glibc, twoja praca jest o wiele trudniejsza.

Co więcej, czy masz konto w systemie, więc masz katalog domowy, który jest spójny od logowania do logowania?

Jeśli nie masz tam gcc, musisz znaleźć skompilowaną wersję binarną gcc/g ++ i zainstalować ją gdzieś. Jeśli nie masz tam plików nagłówkowych, musisz znaleźć ich kopie i umieścić je w systemie.

Nie ma "standardowego" sposobu instalowania gcc w twoim folderze domowym. Wszystkie rozwiązania będą wymagały pewnego rodzaju ręcznego toczenia.

Czy zapytaliście bibliotekarzy, czy mogą zmienić to, co zostało zainstalowane, ponieważ chcecie się nauczyć programowania i mieć dostęp tylko do swoich komputerów? To może być najłatwiejsze rozwiązanie.

Z Twojego komentarza wydaje się, że masz gcc i jeśli możesz skompilować kod C, masz pliki nagłówkowe biblioteki. Więc teraz chodzi o to, żeby skompilować własną wersję g++. Prawdopodobnie możesz znaleźć sposób, aby zachęcić menedżera pakietów do zainstalowania pakietu binarnego w innym miejscu niż w folderze systemowym. Myślę, że to rozwiązanie jest mniej zabawne niż kompilowanie własnego, i myślę, że mogą pojawić się również subtelne problemy, ponieważ zainstalowany pakiet może oczekiwać znalezienia rzeczy w konkretnych miejscach i nie może ich znaleźć.

Najpierw należy upewnić się, że pobrano właściwe źródło pakietu gcc. Miejsce, które można znaleźć to GNU United States mirror page. Chcesz znaleźć plik gcc-4.5.0.tar.bz2 lub gcc-4.5.0.tar.gz w wybranej witrynie kopii dystrybucyjnej. Prawdopodobnie będzie to katalog gcc i podfolder gcc-4.5.0.

Po pobraniu tego pliku należy go rozpakować. Generalnie nie powinieneś budować gcc w folderze, w którym go rozpakowujesz. Zatem utwórz kolejny folder rodzeństwa, który chcesz zbudować w postaci oznaczonej jako gcc-build. Następnie wymagane polecenie to ../gcc-4.5.0/configure --prefix=$HOME/.local --enable-languages='c c++'.

gcc wymaga zainstalowania innych pakietów, aby móc się skompilować. Możesz użyć tej samej linii --prefix dla tych pakietów, aby zainstalować je w tym samym miejscu. Witryna gcc ma numer list of pre-requisite packages.

to rodzaj standardowego zaakceptowanego miejsca instalacji instalacji dla poszczególnych użytkowników.

+0

Mam zainstalowany gcc (mogę skompilować kod C). Mam także spójny katalog domowy. Nie wiem, gdzie znaleźć skompilowany g ++, znalazłem tylko źródło, ale nie wiem, co z nim zrobić. Próbowałem poprosić ich o zainstalowanie, ale to nie zadziałało :) –

+0

@ user287655 - Dodam ten komentarz do twojego pytania, aby go jeszcze bardziej wyjaśnić. – Omnifarious

+0

Ale nie próbuj budować nowej wersji GCC. Zgodnie z https://gcc.gnu.org/install/prerequisites.html GCC potrzebuje kompilatora C++ 98, chyba że budujesz GCC przed wersją 4.8, która pozwala na bootstrapowanie z kompilatorem C89 –

0

Jeśli masz fakeroot, możesz użyć tego do ustawienia ~/some-path jako root, aby zainstalować pakiety. Alternatywnie można skonfigurować środowisko chroot, aby zrobić to samo.

Biorąc to pod uwagę, można następnie użyć pakietu dpkg -i package.deb, aby zainstalować pakiet (pakiety) gcc w systemie. Będziesz musiał pobrać i zainstalować każdy pakiet indywidualnie (np. Ze strony debian) - co najmniej binutils, glibc, linux-headers i gcc.

Jeśli korzystasz z innego systemu, musisz pobrać odpowiednie pakiety dla tego systemu i zainstalować je przy użyciu odpowiedniego menedżera pakietów.

7

Jeśli chcesz zainstalować go jako użytkownik lokalny

GNU GSRC zapewnia łatwy sposób to zrobić

Link: http://www.gnu.org/software/gsrc/

Po konfiguracji, wystarczy podać następujące polecenia:

cd gsrc 
make -C pkg/gnu/gcc 
make -C pkg/gnu/gcc install 

Drugi krok można również zmienić, aby przyspieszyć działanie systemu z rdzeniem N:

make -C pkg/gnu/gcc MAKE_ARGS_PARALLEL="-jN" 
+1

Polecam stabilne wydanie (jak 2013.07) zamiast tułowia, pobierz z: http://ftp.gnu.org/gnu/gsrc/ – canesin

+0

Czy to również zainstaluje nową wersję standardowej biblioteki C++? –

Powiązane problemy