젠투 리눅스 업그레이드를위한 최적의 절차?


23

이것이 제가 젠투를 오랫동안 업그레이드해온 방법입니다. 이것이 권장되는 방법입니까? 사용할 방법이 있습니까?

emerge --sync
emerge -uDav --tree world
emerge -av --depclean
revdep-rebuild -v -- --ask
dispatch-conf
glsa-check -t all
glsa-check -f all

6
개인적 등장에 나는 -N 플래그를 추가
톰 리터

2
--tree (-t)는 무슨 일이 일어나고 있는지 이해하는데 편리합니다
lkraav

답변:


5

당신이 그것을 덮은 것 같습니다. 다른 팁은 블라인드 도매 업데이트보다 약간 느리게하는 것입니다. 패키지 또는 종속성 체인을 항상 emerge -DNuav <atom>대신 개별적으로 업데이트 할 수 있습니다 world(예 : 시스템 라이브러리와 같이 월드 파일에 추가하지 않으려는 항목에는 --oneshot을 사용하십시오).

두 달마다 모 놀리 식 배치 업데이트를 수행하지 않고 정기적으로 최신 상태를 유지하는 것이 항상 더 쉽습니다. 또한 너무 많은 놀라움을 피하기 위해 gentoo-user주요 업데이트 문제가 목록에 나타날 가능성이 높기 때문에 (경고 :이 목록에서 하루에 최대 100 개의 메일) 과 같은 메일 목록 중 하나를 구독하면 도움이 될 수 있습니다 . 그것들을 해결하는 방법을 설명하는 많은 토론.

차기 주요 "문제"업데이트는 openrc가 안정적이되면 openrc 로의 마이그레이션이 될 것이라고 생각합니다 (작년 네트워킹은 주로 몇 가지 문제만으로 iirc의 작년 중반에 이루어졌습니다).


2
그렇습니다. 거대한 덩어리가 아닌 정기적으로 최신 상태를 유지하면 +1합니다. 가끔씩 많은 변화가 있습니다. github.com/lkraav/gentoo-cron-weekly 는 간단한 주간 보고서 도구 세트입니다.
lkraav

8

나는 당신을 제외하고는 같은 단계에 가깝습니다.

  • eix-sync대신 emerge --sync포티지 트리의 변경 사항을보고 싶기 때문입니다. 이것은 트리에 새로운 패키지를 설치하고 싶을 때 특히 좋습니다.

  • layman -S (가끔) 메인이 나타나기 전에 오버레이의 변경 사항을 동기화합니다.

  • eclean-dist -d애프터 revdep-rebuild폐기 된 타르볼을 청소합니다. 패키지 다운 그레이드가 그렇게 일반적이지 않기 때문에 매번 등장한 후에이 작업을 수행합니다.

  • eix-test-obsolete/ etc / portage 파일을 깔끔하고 최신 상태로 유지하는 데 도움이되는 마지막 단계입니다. 또한 포티지에서 완전히 제거 된 패키지를 설치했을 때 알려주므로 저장소에서 ebuild를 가져와야합니다. 최근의 예에서, Xen VPS에서 실행되는 이전 커널로 인해 iproute2> 2.6.22.20070710의 모든 버전을 마스킹해야하지만 최근 포티지에서 제거되었습니다.

eix-synceix-test-obsolete앱 운반 / 익스 플에 있습니다.

eclean-dist app-portage / gentoolkit에 있습니다.


eix-sync +1
Tim

5
  1. emerge --sync또는 eix-sync또는 emerge-delta-webrsynceix-update
  2. emerge -av portage
  3. eclean-dist

Linux 헤더, glibc, binutils, libtool 또는 gcc 중 하나에 업데이트가 있는지 확인하십시오 (예 : 4.6에서 4.8 사이의 gcc 업데이트). 11 단계로 진행되지 않으면

전체 재 구축 :

  1. rm -rf PKGDIR/* PKGDIR을 패키지 디렉토리 경로로 바꾸십시오!
  2. emerge -av linux-headers glibc binutils gcc-config libtool gcc
  3. gcc-config <number of new gcc> 새로운 gcc로 전환
  4. source /etc/profile
  5. emerge -avb glibc binutils gcc libtool
  6. emerge -avbke system
  7. emerge -avbke world

10 또는 11 단계에서 문제점이 발생하면이를 수정하고 다시 시도하십시오.

세계 업데이트 :

  1. /var/lib/portage/world불필요한 패키지에서 월드 파일 을 정리 하고 /etc/portage엔티티를 확인하십시오.
  2. fixpackages
  3. emerge -avuDN world
  4. eselect python update
  5. python-updater -- -av
  6. perl-cleaner --all -- -av
  7. emerge -a --depclean
  8. revdep-rebuild -i -- -av

14-18 단계에서 문제점이 발생하면이를 수정하고 13 단계부터 모든 단계를 반복하십시오.

  1. etc-update 또는 dispatch-conf
  2. glsa-check -vp affected 업데이트 후 슬롯의 패키지에 영향을 줄 수 있습니다
  3. emaint --check all

3

당신의 목표가 모든 패키지를 절대적으로 최신으로 유지하는 것이라면 그렇습니다. 모든 기반을 덮는 것 같습니다. 블록, 부서진 등으로 자주 물릴 것이라고 상상할 수 있기 때문에 이것이 오랫동안 당신을 위해 일한 것에 놀랐습니다. 지난 몇 년 동안 나는 도매 업데이트에 대해 훨씬 더주의를 기울였습니다. 업데이트 트리를 본 후 단편적으로 수행하도록 선택합니다. 젠투 개발은 전성기를 지나간 것 같습니다. 우분투의 부상으로 인한 것일 수도 있습니다.

어쨌든, 전체 프로세스에 대해 정말 까다로워하기 위해 시도해야 할 또 하나의 일은 distfile을 정리하는 것입니다. 검색하면 스크립트가 있습니다.


1
마스크되지 않은 ebuild를 고수한다면 Gentoo는 제 의견으로는 상당히 안정적이었고 동기화와 출현 세계를 수행하여 모두가 실제로 깨지는 것은 아닙니다. 당신은 당신이하고있는 일을 알아야하지만 apt 또는 yum에 대해서도 마찬가지입니다. 나는 그들 모두에게 물렸다.
John Downey

1
내가 생각할 수있는 가장 최근의 3 가지 막힘 / 손상은 libcomerr / e2fsprogs, firefox2 / 3 및 xorg 1.3 / 1.5입니다. 이 모든 경우에 도매 업데이트가 작동하도록하기 위해 사소한 마사지가 필요했으며 ~ 키워드는 포함되지 않았습니다.
Adam D' Amico

2
최근 6 개월 이내에 최신 버전의 포티지가 거의 모든 블록과 중단을 자동으로 해결합니다. libcomerr / e2fsprogs를 포함합니다.
Dan Carley

3
glsa-check -t all
glsa-check -f all

그것이 당신이 먼저해야 할 일입니다. 모든 패키지를 업그레이드하면 필요하지 않습니다.

아 그리고 나는 cfg-update를 선호한다;)


1

이것이 제가하는 것입니다:

emerge --sync         //Synchronize the package manager with the latest 
                      //version of each package.


emerge -aDvNu system  //updates the system, but only important if you want the
                      //latest stable version of the actual compiler and libraries
                      //with the core system.

emerge -uDNav world   //world means everything we've asked to be emerged before
                      //this does not include things that came pre installed.
                      //N means if you change your use directives in 
                      //your make.conf file to pull in the new packages.

emerge -av depclean   //removes libraries or programs that don't have any other 
                      //dependencies because of an update.


revdep-rebuild        //means if something is broken by an update, it 
                      //recompiles it.  Fixes dynamic and static linking problems.

주석을 완전히 이해하지 못하면 젠투 패키지를 업데이트하는 방법에 대한 설명이므로이 내용을 읽으십시오.

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1


0

모든 명령을 실행할 필요는 없지만 일반적으로 동기화 및 업데이트 세계를 수행하지만 프로세스는 정확합니다. Emerge는 일반적으로 주요 Python 업그레이드와 같이 파일을 다시 작성하기 위해 스크립트를 실행해야하는지 여부와 구성 변경 사항을 병합 할시기를 알려줍니다. 젠투에는 실제로 버전 간 업그레이드 경로가 없습니다. 당신이 세상에 등장하는 순간 당신은 최신 버전을 얻었습니다.


0

나는 오랫동안이 절차를 항상 사용했다.

emerge -f --update --newuse --deep world && emerge --update --newuse --deep world

나는 밤새도록 업데이트하는 것을 선호합니다. 그러나 때때로 문제가 발생하여 모든 (또는 일부) 프로그램을 다시 다운로드해야합니다.

아마도 --newuse 스위치는 필요하지 않지만 종종 make.conf를 편집하여 나에게 적합합니다.


"--newuse"대신 "--rechange changed-use"를 사용할 수 있습니다. 이렇게하면 명시 적으로 변경 한 use 플래그가있는 패키지가 다시 설치됩니다. 더 이상 사용되지 않는 사용 플래그 등을 추가했습니다. 그래도 때때로 "--newuse"로 실행해야합니다.
hayalci

0

depclean을 너무 빨리 실행하지는 않지만 괜찮아 보입니다.

HDD 공간 부족과 같은 요구 사항이없는 한 정기적 인 간격으로 돌아와서 깨끗하게 정리할 수 있습니다. 짧은 시간 동안 주변에 해를 끼치 지 않습니다. 업데이트 후 일부 손상된 패키지를 발견 할만큼 운이 좋지 않은 경우 느슨한 종속성을 제거한 결과가 아니라고 확신 할 수 있습니다.


0

이것이 내 VPS에서 수행하는 방식입니다.

0 단계 (/ etc / crontab에서)

0 0   * * *     root    emerge --sync &> /dev/null

1 단계:

emerge --update --deep --newuse world -av

2 단계:

emerge --depclean && revdep-rebuild && eclean-pkg && rm /usr/portage/distfiles/*
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.