[완료] gentoo - emerge busybox error

bus710의 이미지

busybox (유용하고 자잘한 유틸을 모아놓은 통합 패키지....정도?)를 업데이트하다가
dyn-compile 이 어쩌고 저쩌고 하는 에러를 만났습니다.

구글링해 본 결과 make.conf 의 프로세서 선언을 i686 에서 i386 으로 해주면 된다는 글을 발견했습니다.

CHOST="i686-pc-linux-gnu" => CHOST="i386-pc-linux-gnu"

수정하고 시도하니 바로되더군요.

젠투에서의 버그이며... 이미 누군가가 버그 리포트를 한것 같아서 전 그냥 팁 삼아 적어 봅니다.

dalgarak의 이미지

에, 태클을 걸려는 의도는 절대 아닙니다만..

dyn_compile ... 이라고 말씀하시면 컴파일간 에러라고 밖에 알 수가 없습니다 @_@

CHOST를 변경해서 해결된 문제라면 현재 구성된 빌드 툴체인을 의심해봐야 할 사안이라고 생각됩니다.
(다르게 이야기하자면 gcc-config -l, binutils-config -l 을 했을 때 현재 잔존/선택된 툴 체인이 CHOST로 된 prefix 부분이 둘 다 같아야한다는 말입니다)

죄송하지만, 그 참조하신 페이지의 링크를 부탁드려도 될까요?

----
안드로메다는 이미 개념만으로도 빅뱅직전.

bus710의 이미지

http://www.mail-archive.com/gentoo-user@lists.gentoo.org/msg53353.html

입니다.

그렇다면 아마, 제 젠투 미니멀 씨디가 i386용인데, make.conf는 i686으로 되어 있어서 그렇다고 생각할 수 있겠군요... 일단은 busybox만 i386으로 해 놓고 나머지는 i686으로 업데이트해서 잘 쓰고 있으니 다행일까요^^;

*이런 태클이라면 얼마든지 감사 드립니다. 30점도 받고 모르는 것도 배우고.

akudoku.net

life is only one time

dalgarak의 이미지

var/tmp/portage/sys-apps/busybox-1.4.1-r2/work/busybox-1.4.1 ...
 SPLIT   include/autoconf.h -> include/config/*
 GEN     include/bbconfigopts.h
 HOSTCC  applets/usage
 LD      archival/built-in.o
/bin/sh: i686-pc-linux-gnu-ar: command not found
 CC      applets/busybox.o
/bin/sh: i686-pc-linux-gnu-gcc: command not found
make[1]: *** [archival/built-in.o] Ошибка 127
make: *** [archival] Ошибка 2

말씀하신 링크에서 처럼 발생하는 문제가 원인이면..
경험상 미니멀CD 보다는 stage3을 선택했을때 사용자가 설정한 CHOST와 stage3에 들어있는 gcc+binutils와의 차이로 인해 문제가 발생하는 경우가 많았습니다. ar이라면 binutils 일테니, binutils만 다시 빌드해줘도 될법하군요 ;)

그런데, busybox만 그런걸 보면 뭔가 이상하긴 이상하네요; 언급해주신 멜링에서도 binutils를 다시 빌드해서 문제를 해결했다.. 라는 부분이 있긴 합니다만. 역시 젠투의 세계는 ~(_~_)~

저 같은 경우에는..

여하간 "x86" stage3의 타르볼을 풀고 이것저것 해주었을 때(/etc/make.profile 링크의 재설정, make.conf 작성하고 emerge --sync 날려서 포티지 동기화하는것 포함..)

작성한 CHOST="i686-pc-linux-gnu" 값이 이런 형태임에 반해
# ls /usr/i<TAB 완성> 을 했을 때 i386-pc-linux-gnu 또는 뭐 .. 여하간 현재의 CHOST와 차이가 있다..면, emerge world를 하기전에 (업데이트가 필요하면 glibc먼저, 이미 최신이면 상관없습니다)-gcc-binutils 를 우선적으로 빌드합니다.

물론, 슬롯이 달라서 새로 빌드를 하더라도 이전 버전이 없어지지 않는 경우도 있으니..
gcc 빌드 이후에는 "gcc-config -l" 로 현재 지정된 gcc가 자신이 지정했던 CHOST값과 원하는 버전으로 된 프로파일인지 확인하고,
(다르다면 "gcc-config [자신의CHOST]-[gcc버전]" 형태로 된 프로파일명을 입력해서 맞추고..)
binutils를 컴파일한 후에 역시 "binutils-config -l" 로 맞춰준다음
그런 다음 stage에 기본으로 들어가있던 binutils / gcc가 없어지지 않았으면 emerge -C 로 날려버립니다.

젠투에서 CHOST 값에 직접적인 영향을 받는 패키지가 gcc/binutils/perl 정도를 꼽을 수 있기 때문에, CHOST가 부득이하게 변경되면(라곤해도 최초설치때가 전부일텝니다만) 다른것을 업데이트 하기전에 이들을 최우선적으로 리빌드하는 습관을 가졌습니다.

논외의 이야기지만, sys-libs/db 같이 각 버전별 슬롯이 많이 잡혀있어 이버전 저버전 그버전 깔려있는 경우에도 최상위버전 빼놓고는 나머지는 -C 로 날려주고 revdep-rebuild 한방 쌔워서 최상위버전에 맞춰주는 형식으로, 패키지를 정리정돈(?) 하기도 합니다.

가끔씩 revdep-rebuild가 미친관계로 db 옛날버전을 깔려고 시도하면 취소해주고,
"equery depends db"로 의존성있는 애들을 찾아준 다음에 하나씩 리빌드 하기도 합니다.
(너무 삽스러운가요-_-;)

----
안드로메다는 이미 개념만으로도 빅뱅직전.

bus710의 이미지

중요한 노하우로군요.
저도 다음엔 꼭 적용해 봐야겠네요^^

akudoku.net

life is only one time

gogoonee의 이미지

sys-libs/db 가 update 되지 않아 이후 update 가 다 미루어진 상태였는데 님의 글을 보고 binutils-config 를 확인한 결과 최신이 아니더군요. 최신걸로 수정하니 되고 있음돠!!

정말 감사합니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.