
TLS 서버에 연결하는 데 약간의 문제가 있었고 app-misc/ca-certificates
1년 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>/<CATEGORY>/<PACKAGE_NAME>/<PACKAGE_NAME>-<VERSION>.ebuild
- https://wiki.gentoo.org/wiki/Repository_format
<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