emerge-auvD 세계의 특정 업그레이드 건너 뛰기 package.mask파일을 사용 하여이

에서 특정 업그레이드를 건너 뛸 수있는 간단한 방법이 emerge -auvD world있습니까?

예를 들어, 현재이 깨진 media-sound/teamspeak-server-bin-3.0.5-r1 해당 패키지 목록의 첫 번째이기 때문에 전체 업그레이드를 나누기 포티지 트리에서 안정적으로 표시. 물론 package.mask파일을 사용 하여이 버전을 마스킹 할 수는 있지만 환경 변수 또는 명령 줄 스위치를 사용하여 지금 바로 건너 뛰는 것이 좋습니다. 아마도 곧 수정 될 것입니다.

사용하고 싶지 않습니다emerge -auvD1 list of working packages (즉, 다른 이름을 모두 지정하여 다른 패키지 만 업데이트).



답변

--exclude옵션이 다음 과 같이 보입니다 .

--exclude ATOMS
공백으로 구분 된 패키지 이름 또는 슬롯 원자 목록. Emerge는 주어진 패키지 원자와 일치하는 ebuild 또는 바이너리 패키지를 설치하지 않습니다.

그래서 이것은 나를 위해 일했습니다.

emerge -auvD --exclude=media-sound/teamspeak-server-bin world

답변

마스크를 원하지 않으면 --keep-going옵션을 사용할 수 있습니다 . 그러면 emerge는 목록에서 실패한 패키지없이 목록을 재설정하고 계속 진행합니다.


답변

ThiefMaster의 답변 은 올바른 길이지만, Keith의 답변을 개선 할 수있는 또 다른 옵션이 있습니다. 즉, 그의 대답으로 출현이 시도되고 시간이 걸릴 수 있습니다. 경우 당신이 알고 먼저 당신이 단지에 문제가 발생했기 때문에 패키지가 문제가있다, 당신은 사용할 수 있습니다 --resume--skipfirst:

--resume(-r)

오류로 인해 중단 된 가장 최근의 병합 목록을 다시 시작합니다. 이 명령은 재개중인 원래 명령과 함께 제공된 인수 및 옵션을 재사용하며을 호출 할 때 추가 옵션을 제공 할 수도 있습니다 --resume. --resumeresumed 명령의 인수가 대신 사용되므로 원자 또는 세트를 인수로 제공하는 것은 오류 입니다. 이 작업은 실패시 오류 만 반환합니다. 포티지가 수행 할 작업이 없으면 포티지가 메시지와 성공 조건으로 종료됩니다. 이력서 목록은 전체적으로 완료되거나 중단 된 다른 병합 목록이이를 대체 할 때까지 지속됩니다. 이력서 기록은 두 개의 병합 목록을 저장할 수 있습니다. 하나의 이력서 목록이 완료되면 호출 할 수 있습니다--resume이전 목록을 다시 시작하려면 다시 한 번. 이력서 목록은에 저장 /var/cache/edb/mtimedb되며 다음을 실행하여 명시 적으로 버릴 수 있습니다 emaint --fix cleanresume(emaint (1) 참조).

--skipfirst

이 옵션은와 함께 사용하는 경우에만 유효합니다 --resume. 이력서 목록에서 첫 번째 패키지를 제거합니다. 나머지 패키지에 대한 종속성이 다시 계산되며, 종속성이 충족되지 않았거나 마스크 된 항목은 자동으로 삭제됩니다. 관련 --keep-going옵션 도 참조하십시오 .