2011-12-08 5 views
6

Chciałbym zainstalować GHC 7.2.2 na serwerze Redhat x86_64 (RHEL v5) w pracy (na moim koncie użytkownika.) Nie mam uprawnień administratora. Pobrałem ogólny plik binarny dla Linux x86_64 ze strony pobierania GHC. Ale po uruchomieniu configure, rzuca wyjątek wersji glibc dla ghc-pwd, ponieważ wersja glibc w systemie Linux to 2.6. Wymagana wersja glibc to 2.7.Kompilowanie GHC 7.2+ w systemie Linux z wersją libc <2.7

Przeszukałem go, ale nie znalazłem żadnych wstępnie skonfigurowanych plików binarnych GHC dla Redhat 5. Docenię wskazówki, jak obejść problem z wersją glibc, jeśli ktoś je wymyślił pod kątem RHEL 5 (lub dowolnego smaku Linuksa, jeśli obejście jest ogólne). Ewentualnie, jeśli są gdzieś dostępne spakowane pliki binarne dla Redhat x86_64, mogę je pobrać i rozpakować, jeśli wskażesz mi je. W przeciwnym razie wygląda na to, że utknąłem w GHC 6.12 w pracy.

+2

Mam dowód istnienia, że ​​to * może * być zrobione, ale potrzebuję trochę czas sprawdzić z innymi, czy pamiętamy, jak powtórzyć proces. – acfoltzer

+0

Wspaniale ... proszę opublikuj dowód, jeśli możesz zebrać brakujące elementy.Naprawdę pomoże nam to w przyjmowaniu nowszych wersji GHC w pracy. – Sal

+0

@acfoltzer, jakikolwiek dowód na zdobywanie szczęścia? Będzie to bardzo cenne, jeśli je masz i możesz je udostępniać. – Sal

Odpowiedz

3

Miałem podobny problem, więc sam kompilowałem ghc. Nie jest to banalne, ponieważ potrzebujesz nowszych binutils i gcc. Ale można to zrobić (wszystko w terenie użytkownika).

+0

Którą wersję binutils i gcc potrzebujesz, aby skompilować ghc? Chciałbym uniknąć samodzielnego kompilowania ghc, ponieważ jest to dużo pracy, bez pewnej zapłaty (ponieważ nie mam uprawnień roota do zainstalowania tego, co jest potrzebne). Ale jeśli nie mogę znaleźć plików binarnych/obejścia, będę musiał. – Sal

+0

Użyłem binutils-2.20.1 i gcc-4.3.6. – augustss

4

Zbudowałem ghc 7.4.1 na magazynie RHEL 5.3, zaczynając od binarnej wersji GHC 6.6 lub 6.8 (zapomnij, która), która działała dobrze na platformie. Następnie użyłem go do zbudowania ghc 6.12 ze źródła, a następnie wykorzystałem 6.12 do zbudowania wersji 7.4.1 ze źródła. Gdybym używał gcc 4.3 do zbudowania wersji 7.4.1, to w porządku, ponieważ gcc 4.3 jest dostępny na RHEL 5.3.

To nie jest dużo pracy, tylko sporo czasu na ukończenie wszystkich kompilacji.

3

GHC potrzebuje GHC binarny dostępny skompilować sobie. Prekompilowane pliki binarne GHC są dostępne, ale zostały zbudowane na nowsze wersje glibc. Ogólnie GHC może być bootstrapowany za pomocą $ VERSION-2 lub nowszego (dokładna wersja to documented with the source downloads).

Potrzebna będzie również nowsza wersja gcc. @ alex-iliev sugeruje, że gcc 4.3 jest wystarczający, co jest dostępne na RHEL 5. Alternatywą jest użycie Gentoo Prefix do zainstalowania aktualnego gcc.

Pobierz i zainstaluj prekompilowanego 6.8 W katalogu:

wget http://www.haskell.org/ghc/dist/6.8.3/ghc-6.8.3-x86_64-unknown-linux.tar.bz2 
bunzip2 ghc-6.8.3-x86_64-unknown-linux.tar.bz2 
tar -xf ghc-6.8.3-x86_64-unknown-linux.tar 
cd ghc-6.8.3 
mkdir ~/ghc_bootstrap_6_8 
./configure --prefix=/home/wilfred/ghc_bootstrap_6_8/ 
make install 

kompilacji 6.12:

wget http://www.haskell.org/ghc/dist/6.12.3/ghc-6.12.3-src.tar.bz2 
bunzip2 ghc-6.12.3-src.tar.bz2 
tar -xf ghc-6.12.3-src.tar 
cd ghc-6.12.3 
mkdir ~/ghc_bootstrap_6_12 
PATH=/home/wilfred/ghc_bootstrap_6_8/bin:$PATH ./configure --prefix=/home/wilfred/ghc_bootstrap_6_12/ 
make 
make install 

Kompilacja 7.2 i 7.6 jest taki sam proces jak 6.12. Kompilacja może zająć kilka godzin, więc możesz przyjrzeć się quick builds (chociaż będziesz potrzebował normalnej wersji ostatecznej wersji GHC).

Jeśli zejdziesz z katalogu głównego preinstalacji Gentoo, po prostu załaduj się do GHC 7.2. Następnie można modyfikować $EPREFIX/usr/portage/eclass/ghc-package.eclass dodać linię:

PATH=/home/wilfred/ghc_bootstrap_7_2/bin:$PATH 

następnie po prostu dodać ghcbootstrap do flag USE oraz:

emerge --nodeps ghc 
Powiązane problemy