Changing the CHOST variable/ko

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

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

There are certain situations where changing the  variable is inevitable, e.g. when upgrading to glibc 2.4 which only supports nptl and the user finds out that the current   is i386, which makes it impossible to use nptl. In this case, there are not a lot of options, and changing  is one of them.

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

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

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

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

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

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

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

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

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

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

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

Next, verify everything is fixed:

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

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

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

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

The following set of packages really need to be rebuilt:

All packages using perl install to the  directory and hence need rebuilding. In case qfile is not available on the system yet, install first.

Now rebuild all packages that have files installed in any location:

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

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

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

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

In some rare cases, this can break old versions of python, too. This may be fixed by adding (change accordingly to the old   and gcc version) to, running ldconfig and then emerge libstdc++-v3. However, as can be seen, this situation needs to be avoided - don't change  and gcc at the same time.

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