Zainstalowałem nowszą wersję devtoolset (1.1) i zastanawiałem się, jak na stałe ustawić te domyślne. W tej chwili, kiedy ssh na moim serwerze z CentOS, muszę uruchomić to poleceniescl enable devtoolset-1.1 bash
Próbowałem dodać go do ~ / .bashrc i po prostu wkleić w ostatnim wierszu, bez powodzenia.
/opt/rh/devtoolset-7/enable
Alternatywą
source /opt/rh/devtoolset-4/enable
jestPowyższy skrypt powłoki
scl_source
jest bardziej elegancki niż użycie ścieżki zakodowanej na stałe (może być inny na innym komputerze). Jednakscl_source
robi mniej, ponieważ/opt/rh/devtoolset-4/enable
używascl_source
i innych rzeczy.Aby użyć
scl_source
, może być konieczne uaktualnienie pakietuscl-utils
Szybkie kopiowanie-wklejanie
Kod źródłowy dla ciekawskich ludzi
Przykład
scl_source
kodu źródłowego:https://gist.github.com/bkabrda/6435016
scl_source
Zainstalowane na Red Hat 7.1źródło
Problem polega na tym, że
scl enable devtoolset-1.1 bash
tworzy nową powłokę bash. Więc kiedy umieścisz go w swoim .bashrc, tworzy on nową powłokę ... która ładuje .bashrc, która działascl enable devtoolset-1.1 bash
, która tworzy nową powłokę, która ładuje twój .bashrc ... Forkbomb!Prawdopodobnie chcesz czegoś takiego w swoim .bashrc:
lub
exit
dwa razy.źródło
scl enable
tego.scl enable
każdym razem, gdy otwieram nową sesję ssh. Przepraszam za te noobistyczne pytania, ale nie jestem pewien, jak przejść do ustawiania nowszej wersji jako domyślnej. Czy istnieje zmienna środowiskowa, którą muszę wyeksportować w moim profilu bash?sudo apt-get install gcc
. W CentOS jest to mniam, npsudo yum install gcc
.sudo yum update && sudo yum install gcc
i sprawdziłgcc --version
. Jeśli nie jest to 4.7, prawdopodobnie musisz użyć devtoolset. Jeśli nie chcesz uruchamiać go w SCL, możesz odinstalować natywną gcc za pomocą,sudo yum remove gcc
a następnie dodać katalog devtoolset do swojej ścieżki, tj. Umieścićexport PATH=$PATH:/opt/centos/devtoolset-1.1/root/usr/bin
w .bashrc. To pozwoli Ci wpisaćgcc
lubg++
uzyskać devtoolset gcc4.7.Alternatywnym sposobem zlokalizowania skryptu wymienionego w innych odpowiedziach jest powiadomienie menedżera pakietów, gdzie on mieszka.
Właśnie dlatego uruchamiamy narzędzia dotnet na naszych błędnych maszynach RHEL / CentOS.
source $(rpm -ql rh-dotnet20-runtime|grep -E /enable$)
źródło