이 프로필은 기본값입니다.

이 프로필은 기본값입니다.

방금 Arch Linux에 GUIX를 설치했지만 여전히 일부 개념을 이해하는 데 어려움을 겪고 있습니다. 이해해요, 하나윤곽패키지는 에서 선택되었으며 /gnu/store패키지를 가져와서 활성화할 수 있습니다 <profile-dir>/etc/profile. 그러나 내 홈 디렉토리에 심볼릭 링크로 저장된 두 개의 "기본" 구성 파일이 있는 것 같은 이유를 이해할 수 없습니다.

  • ~/.guix-profile -> /var/guix/profiles/per-user/user/guix-profile
  • ~/.config/guix/current -> /var/guix/profiles/per-user/user/current-guix

몇 가지 정보를 찾았지만 충분하지 않습니다.

.guix-profile

원하는 역할을 할당할 수 있습니다. 일반적으로 항상 사용하려는 패키지의 매니페스트를 설치합니다.

또는 며칠 동안만 사용하는 일회성 패키지의 경우 "매니페스트 없음"으로 남겨둘 수 있습니다. 이렇게 하면 쉽게 실행할 수 guix install package-foo있고 guix upgrade package-bar(GUIX 레시피에서)

.config/guix/current:

guix pull 실행 결과는 ~/.config/guix/current 최신 Guix가 포함된 사용 가능한 구성 파일입니다. ("옮기다 guix pull")

이 두 구성 파일의 차이점은 무엇입니까? 이 두 가지가 왜 필요한가요? 로그인 시 두 가지를 모두 받아야 합니까?

답변1

이 프로필은 기본값입니다.

이 두 프로필을 "일반" GUIX 프로필과 구별하는 유일한 점은 해당 프로필이 해당 GUIX 명령에 대한 기본 옵션이라는 것입니다(참조:여기두 가지가 어떻게 다른지 알아보세요):

  • ~/.guix-profileguix package옵션의 기본 옵션입니다-p|--profile=
  • ~/.config/guix/currentguix pull옵션의 기본 옵션입니다-p|--profile=

이전에 존재하지 않은 경우 해당 동반 명령이 처음 호출될 때 생성됩니다.

그러나 사용자 정의 프로필을 선호하고 항상 사용하는 경우에는 이 두 프로필 없이도 작업을 수행할 수 있습니다(아래 참조).

그들의 작업은 다릅니다. guix버전 자체를 제공하는 것과 버전에서 관리되는 다른 프로그램을 제공하는 것입니다.guix

  • 이 구성 파일은 ~/.config/guix/current바이너리를 제공하며 guix기본 guix-daemon구성에서 이 구성 파일은 설치할 수 있는 모든 패키지의 최신 버전을 결정합니다. 설치할 수 있는 패키지 목록은 Nix가 아닌 guix 버전과 관련이 있습니다.이 블로그 게시물에서는 그 이유를 설명합니다.

    • 사용자에게 root제공되는 바이너리(심볼릭 링크의 대상)는 /root/.config/guix/current/bin/guix-daemon시스템에 의해 자동으로 시작되는 GUIX 데몬입니다. 또한 심볼릭 링크도 있습니다 /usr/local/bin.
  • 이 구성 파일에는 ~/.guix-profile포함하려는 모든 패키지가 포함되어 있습니다. 많은 사용자는 이를 쉘 시작 파일에 포함하여 자동으로 사용 가능한 다른 작업별 프로필의 일부가 아닌 공통 프로그램을 갖게 됩니다.

이러한 프로필은 셸 실행 파일을 통해서만 워크플로에 통합되며 유효한지 여부는 사용자가 결정합니다.

.profile귀하와 관련된 프로필은 .bash_profile귀하(또는 귀하가 사용하는 쉘 초기화 파일)에 의해서만 결정됩니다.

아무것도 지정하지 않으면 패키지 자체가 사용하는 버전과 함께 패키지가 사용되지 않습니다 guix.guixrootGUIX 쉘 설치 프로그램 스크립트심볼릭 링크 생성/usr/local/bin/guix -> /var/guix/profiles/per-user/root/guix

.profile귀하의 (또는 유사한) 1 에 포함하는 경우

GUIX_PROFILE=$HOME/.config/guix/current; 
source "$GUIX_PROFILE/etc/profile"

자신의 GUIX 버전과 패키지 버전을 사용할 수 있습니다.

포함한다면

GUIX_PROFILE="$HOME/.guix-profile";
source "$GUIX_PROFILE/etc/profile"

구성 파일을 로드하면 -p매개변수를 사용하지 않고도 해당 구성 파일을 정의/변경할 수 있습니다 guix package. 물론 여기에서 다른 구성 파일을 로드할 수도 있으며, -p이를 변경하려면 해당 매개변수를 사용하면 됩니다. 많은 사람들이 자주 필요하지만 작업별 워크플로에 할당되지 않은 명령을 포함하기 위해 이 구성 파일을 사용합니다.


1 소싱하기 전에 변수를 정의해야 하는 이유가 궁금하다면 소스 스크립트를 읽어보세요. $PATH프로필 폴더 자체가 아닌 프로필에 대한 링크를 추가합니다 . 즉 guix package -u, 구성 파일을 다시 가져오지 않고 호출하면 자동으로 업데이트된 패키지 버전을 가져옵니다.

관련 정보