Changing the CHOST variable/ko

이 문서는 시스템에 있는 CHOST 변수 값을 바꾸는 방법을 설명합니다.

도입부
CHOST 값을 바꾸는 일은 시스템 전체를 이상하게 꼬이게 할 수 있는 큰 문제입니다 - 그러니까 왜 그 모든 문제가 안내서에 있냐고요?

CHOST 값을 어쩔 수 없이 바꿨을때 몇가지 상황이 발생하는데, 예컨대, nptl만 지원하는 glibc 2.4를 업그레이드 하려 하는데 CHOST 값을 nptl 사용이 불가능한 i386으로 설정한 경우를 찾을 때가 있습니다. 이 경우, 상당히 많은 옵션을 보유하지 않아, 이 옵션 중 CHOST 값을 바꿔야 합니다.

이 절차를 따르더라도 문제가 발생할 수 있으니, 매우 조심스럽게 읽고 실행에 옮겼는지 확인 하십시오. 이 경우 CHOST 값이 i386에서 i686 으로 바뀌며, 다른 값을 바꿨을 경우 그에 따라 명령도 바꿉니다.

꾸러미 빌드
CHOST 값 바꾸기를 시작하려면, 파일을 편집하여 여러분이 필요에 맞춰 CHOST 값을 바꾸십시오. 다음 순서를 통해 다음 꾸러미를 다시 빌드하십시오:

동작 확인
이제 와   설정이 온전한지 확인하고 에서 나머지 요소를 날릴 때입니다.

와  출력은 다음과 같아야 합니다(gcc 버전과 CHOST 값에 따라 다를 수 있으며, 여기는 GCC 4.1.1과 i686에 해당합니다):

다음, 이전 CHOST 값을 에서 참조하는지 확인하십시오:

파일을 지우기 전에 업데이트한 CHOST 값이 파일에 붙었는지 확인하도록 하겠습니다:

여기서는 의 (05gcc를 예로 들어) 에 대해서만 결과가 잘 나온것처럼 보이니, 잘못된 참조가 들어간 파일을 삭제하도록 하겠습니다:

이 같은 설정은 에도 적용합니다 - 추가 요소가 있을 경우 오래된 요소를 찾아 삭제하십시오. 다음 디렉터리를 확인하십시오

보기 좋아보이는군요, 실제로 두 파일이 위치해 있습니다. 이제 gcc 디렉터리로 이동할 때입니다.

와 은 괜찮지만 제거해야 할 가 남아있습니다.

이제 환경을 업데이트하려면 다음 명령을 실행하십시오:

모든 문제를 고쳤는지 확인하십시오:

아직도 뭔가가 있다면, 몇가지 빠진 파일을 보유하고, 계속 진행하기 전에 따라가봐야 합니다.

값 바꾸기 끝내기
이제 를 다시 이머지하고 를 실행해야 합니다. 올바른 gcc 버전을 사용중이며(현재 여기서는 4.1.1) 이전 아키텍처(i386)를 매개변수로 넘겼는지 확인하십시오. $CHOST 값을 새 CHOST 값으로 바꾸고 를 지금 gcc 버전으로 바꾸십시오. 이 예제에서는 CHOST 값을 i686으로 설정했음을 가정합니다.

모든 꾸러미를 다시 빌드하시는게 좋습니다:

이제, 이론적으로는 그리 할 필요가 없지만, 실제의 경우 100% 보장하진 못합니다. world를 대상으로 다시 컴파일 하는게 아니라면 최소한 다시 컴파일 할 필요가 있다는 몇가지 꾸러미를 언급했으니, 다음과 같이 하셔야 합니다:

perl을 사용하는 모든 패키지를 CHOST 디렉터리에 설치했으니 다시 이머지 해야 합니다. 이 경우 을 설치하지 않았으므로 먼저 를 설치해야 합니다.

다시 컴파일 해야 할 패키지가 아직도 몇개 있다면 이 문서를 작성한 저자에게 알려줏비시오.

일반적인 문제
CHOST 값을 바꾼 후 GCC 3.3에서 4.1로 업그레이드 할 때(어쨌든 이렇게 하지 마십시오), 꽤 많은 사람이 groff와 courier같은 꾸러미가 깨져 다시 컴파일해야 한다고 보고했습니다:

Error messsage

이 일은 업그레이드 도중에 CHOST 값이 CTARGET과 일치하지 않고, 컴파일러가 크로스컴파일하는걸로 간주하기 때문에 일어나는 일입니다. 결과적으로 LDPATH 값을 에 넣지 않아 이 오류가 나타납니다.

GCC 업그레이드 후 다시 빌드해야 할 꾸러미의 정보는 GCC 업그레이드 안내서를 참고하십시오.

어떤 드문 경우에는 오래된 버전의 파이선도 깰 수 있습니다. (이전 CHOST 값에 따라 바꾸십시오)를 에 추가하고  를 실행한 다음  를 실행하면 문제를 해결할 수 있습니다. 그러나 보신 바와 같이 이 문제에 직면하는걸 제대로 막아야 합니다. CHOST 값과 GCC 버전을 동시에 바꾸지 마십시오.

피드백
피드백(동작할 경우든, 실패했거나, 다른 문제가 있다면)은 모두 환영하니 로 전자 메일을 보내시든지 이 포럼 스레드en에 글을 남겨주십시오. 여기 설명에 대한 내용은 vapier가 알려주었습니다. 도움 감사합니다!