포티지가 패키지를 다운로드하게 하고 더 이상 아무것도 하지 않게 하려면 어떻게 해야 합니까?

포티지가 패키지를 다운로드하게 하고 더 이상 아무것도 하지 않게 하려면 어떻게 해야 합니까?

TLS 서버에 연결하는 데 약간의 문제가 있었고 app-misc/ca-certificates1년 4개월이 지났다는 것을 알게 된 후 . 이후 변경된 사항이 무엇인지 궁금했습니다 20140927.3.17.2. 나는 패키지의 복사본을 가져와서 모든 내용을 추출하고 여기저기 살펴보기만 하면 된다고 생각했습니다. 매뉴얼 페이지 의 emerge훑어보기 --fetchonly( -f):

패키지 빌드를 수행하는 대신 모든 패키지에 대한 가져오기를 수행하십시오(USE 설정에 따라 SRC_URI에서 항목 가져오기).

내가 원하는 것 같네요! 갑시다.

caramel:~ blackl% emerge --fetchonly '='app-misc/ca-certificates-20151214.3.21
emerge: portage group access is required

...어어? 글쎄…왜 안되는지 모르겠습니다. 루트 권한이 있습니다.

caramel:~ blackl% sudo emerge --fetchonly '='app-misc/ca-certificates-20151214.3.21
Calculating dependencies... done!
[ebuild     U ~] app-misc/ca-certificates-20151214.3.21 [20140927.3.17.2]

The following keyword changes are necessary to proceed:
 (see "package.accept_keywords" in the portage(5) man page for more details)
# required by =app-misc/ca-certificates-20151214.3.21 (argument)
=app-misc/ca-certificates-20151214.3.21 ~amd64

무엇? 아니요…그냥 패키지를 다운로드하고 싶습니다. 실제로 설치하거나 시스템을 변경하고 싶지 않습니다.

매뉴얼 페이지를 좀 더 철저하게 검색해도 관련성이 있어 보이는 다른 항목은 발견되지 않았습니다( 같은 결과를 제공하는 --fetch-all-uri| 제외). 여기서 특권 액세스 및 키워드 변경을 주장하는 -F이유는 무엇입니까 ? emerge그것은 무엇입니까?정말단지 타르볼을 다운로드하고 검증한 후 작업 디렉토리나 캐시 어딘가에 덤프하는 것 외에 어떤 일을 하고 계십니까?

답변1

질문은 아마도 다음과 같을 것입니다: "포티지를 다운로드하려면 어떻게 해야 합니까?"패키지 소스, 그리고 그 이상은 아무것도 안 합니까?". 사용하여 작동하지 않는 이유는 emerge이머지가 그렇게 설계되었기 때문입니다. 이머지는 단순히 이런 종류의 작업을 수행하는 데 적합한 도구가 아니며 바라건대 결코 그렇게 되지 않을 것입니다. 실제로 원하는 것을 달성하려면 , 다음과 같이 ebuild명령( )을 사용해야 합니다 man 1 ebuild.

ebuild <PATH_TO_EBUILD> fetch

이 명령 은 $SRC_URI.$DISTDIR

변수의 값을 얻으려면:

  • <PATH_TO_EBUILD>
  • <REPO_DIR>:portageq get_repo_path / gentoo
  • $DISTDIR:portageq distdir

실제로 소스를 선택한 디렉토리로 가져오려면 $DISTDIR다음과 같이 var를 스푸핑하면 됩니다.

DISTDIR=<DIR> ebuild <PATH_TO_EBUILD> fetch

따라서 기본 포티지 경로를 사용하고 소스를 홈 디렉토리에 다운로드하려면 다음을 실행하십시오:

DISTDIR=~ ebuild /usr/portage/app-misc/ca-certificates/ca-certificates-20151214.3.21.ebuild fetch

관련 정보