Centos에서 devtoolset을 사용하여 상위 버전의 gcc로 전환한 후 기본 gcc로 전환하는 방법

Centos에서 devtoolset을 사용하여 상위 버전의 gcc로 전환한 후 기본 gcc로 전환하는 방법

Centos에 여러 다른 버전의 gcc를 설치하고 싶습니다. centos 6의 gcc 기본 버전은 4.9.3입니다. 그래서 devtoolset을 사용하여 더 높은 버전의 gcc를 설치했습니다. 그런 다음 "source /opt/rh/devtoolset-5/enable"을 실행하여 더 높은 버전의 gcc로 전환했습니다. 하지만 이제 기본 gcc로 다시 전환하려면 어떻게 해야 합니까? 그런데 Centos 5에 여러 다른 버전의 gcc를 설치하기 위한 솔루션이 있습니까?

답변1

gcc배포되는 버전은 CentOS 6실제로 4.4.7입니다.

gcc소스에서 설치하거나 컴파일하여 원하는 만큼 많은 버전을 설치할 수 있습니다 .devtoolset-#yum

첫 번째 방법이 가장 간단합니다. 설치가 devtoolset완료 되었는지 확인하세요 scl repo. 설치하지 않은 경우:

yum install centos-release-scl

gcc version그런 다음 다음 명령을 사용하여 원하는 대로 설정할 수 있습니다 . 이 예에서는 5를 사용하고 쉘이 다음과 같다고 가정합니다 bash.

scl enable devtoolset-5 bash

6으로 변경하려는 경우:

scl enable devtoolset-6 bash

bash기본값으로 다시 변경하려면 쉘이 다음 중 하나라고 가정하십시오.

bash

source ~/.bash_profile

첫 번째는 새 셸 세션을 시작하고 .NET 의 ~/.bashrc변수/명령을 사용하여 설정합니다 ~/.bash_profile. (개발 도구 세트가 활성화되지 않았습니다).

scl enable devtoolset-5 bash예를 들어, 로그인 시 버전이 버전 중 하나로 설정되도록 ~/.bashrcor 를 넣을 수도 있습니다 . 이 방법을 사용하는 경우 시스템 기본값으로 돌아가려면 또는 의 줄을 주석 처리 한 다음 각각 또는 를 실행합니다 . 그러면 이러한 쉘 초기화 파일 중 하나에 있는 모든 내용( 주석 처리된 명령 제외)이 포함된 새 쉘 세션이 시작됩니다 . 유일한 단점은 쉘 세션이 새 것이기 때문에 명령을 통해 설정한 모든 변수가 더 이상 존재하지 않는다는 것입니다.~/.bash_profilegccdevtoolset~/.bashrc~/.bash_profilebashsource ~/.bash_profilescl enableexport

답변2

저는 Linux 전문가는 아니지만 scl수년간의 Linux 경험을 갖고 있습니다.

이렇게 하면 scl enable devtoolset-9 bash새 bash가 시작되고 새 환경이 설정됩니다.

다음을 통해 새 프로세스를 볼 수 있습니다 bash.

  • 먼저 새 쉘을 시작하고 다음을 통해 쉘의 pid를 확인하십시오.echo $$
  • 둘째, 새로운 개발 도구 세트를 활성화합니다.scl enable devtoolset-9 bash
  • 그런 다음 pid를 다시 확인하십시오.echo $$
  • 보너스 포인트의 경우 pstree -p새 bash pid에 이전 bash 프로세스의 상위 pid가 있는지 확인할 수 있습니다.

따라서 최종적으로 귀하의 질문에 답하려면 기본 컴파일러로 돌아가려면 g++현재 프로세스를 종료하면 됩니다 bash. 그러면 이전 g++ 컴파일러가 있어야 합니다.

~/.bashrc에 대한 중요 참고 사항:

  • 어떤 방식으로든 솔루션을 수정하면 내 솔루션이 작동하지 않습니다.~/.bashrc
  • 즉, 거기에 뭔가가 있다면 언제든지 할 수 있습니다scl enable devtoolset-9
  • 다른 솔루션에서는 ~/.bashrc에 대해 더 자세히 설명하고 이를 수정하거나 수정 취소하는 방법을 설명하므로 이 페이지의 다른 솔루션을 참조하세요.

답변3

PATH예를 들어 파일 크기는 얼마입니까 /opt/rh/devtoolset-5/enable? 등 일부 환경 변수를 변경하는 문제일 수도 있습니다 . 그것을 살펴보고, 그것이 무엇인지 확인하고, 사용하려는 이전 컴파일러에 맞게 조정할 수 있습니까? 찾아야 할 확실한 사항은 새 컴파일러 파일이 설치된 디렉토리 이름(이전 컴파일러에 해당하는 경로 이름으로 변경)과 버전 번호입니다. 그 밖에 무엇이 있을지 궁금합니다.

관련 정보