Nix 패키지 관리자로 시작하기 : 초보자 가이드 2024
이 자세한 자습서는 Linux의 Nix 패키지 관리자를 사용하여 패키지 설치, 제거, 업데이트 및 업그레이드와 같은 패키지 관리 작업을 수행하는 방법을 설명합니다.
우리는 간단한 소개와 함께이 안내서를 시작하고 예제가있는 일반적으로 사용되는 닉스 명령이 이어집니다.
목차
Nix 패키지 관리자에 대한 간단한 소개
Nix 는 Linux 및 UNIX 시스템에 소프트웨어를 쉽고 신뢰할 수있는 패키지 관리자입니다. 소프트웨어 충돌과 같은 일반적인 문제를 해결하고 모든 소프트웨어 설치가 예측 가능하고 안전한 지 확인합니다.
Nix를 사용하면 컴퓨터에 서로 다른 버전의 프로그램을 가질 수 있습니다. 즉, 어떤 것도 깨는 것에 대해 걱정하지 않고 소프트웨어를 업데이트, 추가 또는 제거 할 수 있습니다.
Nix는 소프트웨어를 처리하는 방법에 대해 현명합니다. 각 프로그램이 실행 해야하는 모든 비트와 조각을 추적합니다. 이렇게하면 프로그램을 설치할 때 다른 프로그램을 엉망으로 만들지 않습니다. 새로운 소프트웨어 업데이트로 문제가 발생하면 Nix를 사용하면 이전의 방식으로 쉽게 돌아갈 수 있습니다.
NIX 패키지 관리자는 개별 사용자뿐만 아니라 개발자와 서버 관리자에게도 좋습니다. 모두 동일한 소프트웨어 설정을 사용하여 모든 사람을 같은 페이지에 유지하는 데 도움이됩니다. 이렇게하면 소프트웨어를 한 컴퓨터에서 다른 컴퓨터로 이동할 때 놀라움이 줄어 듭니다.
Nix는 선택할 수있는 큰 소프트웨어 모음을 보유하고 있으며 모두 사용자 커뮤니티가 유지 관리합니다. 혼자 일하든 팀과 함께 소프트웨어를 관리하기위한 확실한 선택입니다.
Nix에 대한 자세한 내용은 이전 안내서를 참조하십시오.
- NIX - Linux 및 Unix의 강력한 패키지 관리자
Nix 패키지 관리자로 시작합니다
Nix 패키지 관리자를 설치했는지 확인하십시오. Nix를 아직 설치하지 않은 경우 아래에 주어진 Nix 설치 안내서를 참조하십시오.
- Linux에 Nix 패키지 관리자를 설치하는 방법
Nix 패키지 관리자가 설정되면이를 사용하여 응용 프로그램을 즉시 설치하고 관리 할 수 있습니다.
닉스에는 많은 명령이 있습니다. 패키지 관리의 주요 명령은 Nix-Env 입니다. 이 명령은 나열, 설치, 업데이트, 롤백, 제거, 쿼리 패키지에 사용됩니다. 예제와 함께 몇 가지 명령을 보자.
팁 : 경우, 이미 알지 못하는 경우 NIX를 사용하여 모든 패키지 관리 작업을 수행하기 위해 루트 또는 SUDO 사용자 일 필요는 없습니다.
닉스 채널 작업
NIX 채널은 NIX 패키지 관리자 생태계에서 중요한 역할을합니다.
NIXPKGS 저장소에는 모든 패키지, NIXOS 모듈 및 표현식이 포함되어 있습니다. NIXPKGS의 마스터 브랜치에서 직접 패키지를 설치할 수는 있지만, 철저한 테스트 전에 커밋이 마스터로 병합되어 있기 때문에이 접근법은 위험 할 수 있습니다.
채널은 Nixpkgs에서 최신 "검증 된" git 커밋을 나타냅니다. 각 채널에는 "검증 된"의 의미에 대한 고유 한 정의가 있습니다.
새 GIT 커밋이 확인되면 해당 채널이 업데이트됩니다. 채널 사용자는 바이너리 캐시의 검증 된 커밋과 이진 패키지 모두의 혜택을받습니다.
이것을 간단한 단어로 말하면 Nix 채널은 닉스 표현 세트와 매니페스트를 포함하는 장소를 가리키는 URL 일뿐입니다.
채널 유형
몇 가지 채널이 있으며 크고 작은 채널 뿐만 아니라 안정적 이고 불안정한 채널 로 광범위하게 분류 할 수 있습니다.
안정/불안정 :
- 안정적인 채널 : 버그 수정 및 보안 취약점에 대한 보수적 인 업데이트를 제공합니다. 초기 릴리스 후에 주요 업데이트는 소개되지 않습니다. 새로운 안정 채널은 6 개월마다 출시됩니다.
- 불안정한 채널 : NIXPKGS의 주요 개발 지점 (불안정한)에 해당하는 이들은 최신 테스트 된 업데이트를 롤링 기준으로 제공합니다.
크고 작은 것 :
- 대형 채널 : 이들은 NIXPKG의 전체 폭에 대한 이진 빌드를 제공합니다.
- 작은 채널 : 대형 채널과 비슷하지만 바이너리가 적습니다. 더 빨리 업데이트하지만 더 많은 건물이 소스에서 필요합니다.
기본 채널
기본적으로 NIXPKGS 채널은 NIX를 설치할 때 "구독"채널 목록에 자동으로 추가됩니다.
구독 채널을 봅니다
가입 채널 목록은 ~/.nix-channels 파일에 저장됩니다. 내용을 보면 확인할 수 있습니다.
$ cat ~/.nix 채널 https://nixos.org/channels/nixpkgs-unstable <strong>nixpkgs</strong>
보시다시피, Nix는 기본적으로 nixpkgs 채널을 추가했습니다.
채널을 추가하십시오
아래와 같이 시스템에 수동으로 채널을 추가 할 수도 있습니다.
$ nix-channel-add https://nixos.org/channels/nixos-23.11
공식 채널은 https://nixos.org/channels 에 나열되어 있습니다.
채널 업데이트
채널 구독 (추가) 후 채널 목록을 업데이트하여 명령을 사용하여 사용 가능한 최신 NIX 표현식을 얻으십시오.
$ nix 채널-업데이트
이 명령은 모든 채널을 업데이트합니다. 특정 채널 (nixos-23.11)을 업데이트하려면 다음과 같습니다.
$ nix 채널 -Update nixos-23.11
목록 채널
표준 출력에서 모든 가입 채널의 이름과 URL을 인쇄하려면 실행하십시오.
$ nix-channel-list
샘플 출력 :
<strong>nixpkgs</strong> https://nixos.org/channels/nixpkgs-unstable <strong>닉스</strong> https://nixos.org/channels/nixos-23.11
아시다시피, 이제 나는 nixpkgs-unstable 및 nixos-23.11 의 두 채널을 추가했습니다. nixpkgs와 nixos는 nixpkgs-unstable 및 nixos-23.11의 별칭 일뿐입니다.
채널을 제거하십시오
구독 채널을 제거하려면 NIXOS-23.11 과 같이 실행하십시오.
$ nix-channel-remove nixos-23.11
채널을 제거한 후 명령을 사용하여 채널 목록을 업데이트합니다.
$ nix 채널-업데이트
검색/쿼리 패키지
nix-env-Query 명령은 닉스 패키지 관리자의 패키지에 대한 정보를 제공합니다.
목적 :
Nix-env -Query 작업에는 중 하나에 대한 정보가 표시됩니다.
- 활성 프로파일의 현재 세대에 설치된 경로 (-설치).
- 활성 닉스 표현식 (-available)에 설치할 수있는 파생물.
상징적 이름이 지정된 이름 중 하나와 일치하는 파생에 대한 정보 만 인쇄합니다.
깃발 및 옵션 :
Nix-env -Query 명령을 사용할 수있는 일반적인 플래그 및 옵션은 다음과 같습니다.
- -설치 : 설치된 매장 경로에 대한 정보를 표시합니다 (기본 동작).
- --ailable 또는 -a : 설치 가능한 파생에 대한 정보가 표시됩니다.
- -status 또는 -s : 파생 상태를 인쇄합니다 (시스템에 설치, 존재, 사용 가능한 대체).
- --attr-path 또는 -p : 파생의 속성 경로를 인쇄합니다 (명백한 선택에 사용).
- -no-name : 파생 이름의 인쇄를 억제합니다.
- -컴포지션 버전 또는 -C : 설치된 버전을 사용 가능한 버전과 비교합니다.
- -XML : 인쇄는 자동화 된 처리를 위해 XML 형식을 인쇄합니다.
- --json : 인쇄는 자동화 된 처리를 위해 JSON 형식으로 인쇄합니다.
- -준비 전용 또는 -B : 등록 된 대체물 (사전 제작 된 이진)에 대한 파생물 만 표시합니다.
- -시스템 : 시스템 전체 프로필에서 작동합니다.
- -drv-path , -out-path , -description , --meta : 추가 정보 플래그.
구독 채널에서 사용 가능한 패키지 목록을 보려면 실행하십시오.
$ nix-env-Query-available
또는 곧 :
$ nix -env -qa
여기서 -Q 옵션은 쿼리 작동을 나타내고 -a는 사용 가능한 모든 (즉, 설치 가능) 패키지를 나타냅니다.
샘플 출력 :
0AD-0.0.26 0AD-DATA-0.0.26 0verkill-unstable-2011-01-13 0x-unstable-2022-07-11 0xproto-1.603 0xtools-1.2.4 1OOM-1.0 1Password-8.10.27 1Password-8.10.28-21. 베타 1Password-Cli-2.26.1 2048-Cli-unstable-2019-12-10 2048-Cli-unstable-2019-12-10 2048 터미널-unstable-2022-06-13 20kly-1.5.0 2BWM-0.3 2FA-1.2.0 3270font-3.0.1 389-DS-Base-2.4.3 3dpong-0.5 3llo-1.3.1 3MUX-1.1.0 3proxy-0.9.4 4th-3.64.1 [...]
특정 패키지를 쿼리하려면 명령이 다음과 같습니다.
$ nix -env -qa firefox
산출:
Firefox-115.9.1esr Firefox-124.0.1 Firefox-124.0.1 Firefox-124.0.1 Firefox-125.0B3 Firefox-125.0B3
다음 명령을 사용하여 특정 패키지를 검색 할 수도 있습니다.
$ nix -env -qap | Grep Python3-3
샘플 출력 :
[...] nixpkgs.python312 python3-3.12.2 nixpkgs.python313 python3-3.13.0a5 nixpkgs.python313 풀일 python3-3.13.0a5 nixpkgs.python39 python3-3.9.19 nixpkgs.python39 풀린 python3-3.9.19
정규 표현식을 사용한 쿼리 패키지
정규 표현식을 사용하여 패키지를 쿼리/목록 할 수 있습니다. 다음은 정규 표현의 몇 가지 예입니다.
크롬
패키지 이름 Chromium 및 모든 버전과 일치합니다.
크롬 -123.0.6312.86
패키지 이름 Chromium 및 버전 123.0.6312.86과 일치합니다.
예:
$ nix-env -qa 크롬 -123.0.6312.86
gtk \\
패키지 이름 gtk 와 일치합니다. 캐릭터는 백 슬래시를 사용하여 수량 자로 해석되는 것을 방지해야하며, 쉘이 그것을 통과하도록 보장하기 위해 다른 백 슬래시와 함께 뒤 슬래시를 탈출해야합니다.
. \*
패키지 이름과 일치합니다. 이것은 대부분의 명령의 기본값입니다.
'.*지퍼.*'
문자열 지퍼가 포함 된 모든 패키지 이름과 일치합니다. DOTS를 참고하십시오. '*Zip*'는 작동하지 않습니다. 정규 표현식에서 문자*는 정량 자로 해석되므로.
'.*(Firefox | Chromium).*'
Strings Firefox 또는 Chromium 이 포함 된 모든 패키지 이름과 일치합니다.
설치된 패키지 목록
설치된 모든 패키지를 나열하려면 간단히 실행하십시오.
$ nix -env -q
샘플 출력 :
닉스 -2.21.1
새로운 시스템이므로 시스템에는 NIX 패키지 관리자 만 표시됩니다.
사용 가능한 패키지의 상태를 볼 수도 있습니다. 아래 예를보십시오.
$ nix -env -qas gcc
샘플 출력 :
IPS GCC-13.2.0
여기서 "i"는 지정된 패키지가 설치되었음을 나타냅니다. "P"는 패키지가 시스템에 존재한다는 것을 나타내며, "S"는 패키지에 대한 소위 대체물이 있음을 나타냅니다.
GCC 패키지가 설치되지 않은 경우 다음을 볼 수 있습니다.
-PS GCC-13.2.0
패키지 설치
닉스에서는 모든 패키지가 닉스 스토어 (일반적으로 디렉토리 /닉스 /스토어) 에 저장됩니다.
패키지를 설치하려면 그냥 실행하십시오.
$ nix-env-설치 GCC
또는 (곧),
$ nix -env -i gcc
위의 명령은 최신 사용 가능한 GCC 패키지를 설치합니다.
위 명령의 샘플 출력은 다음과 같습니다.
'GCC-13.2.0'설치 이 3 가지 경로는 가져올 것입니다 (1.58 MIB 다운로드, 7.24 MIB 포장 풀기) : /nix/store/3cfxjb2nkjkfiv0dq54kkfy5ysjnfs3k-gcc-13.2.0-cecksum /nix/store/4i3ml2pzzgjwas18w31zzhn9f41qyshy-gcc-13.2-info /nix/store/smq6f1jz9a5l6l5yjis4s85mq01xww33-23.2.0-man 'https : //cache.nixos.org'에서 '/nix/store/4i3ml2pzzgjwas18w31zzhn9f41qyshy-gcc-13.2.info'... '/nix/store/smq6f1jzz9a5l6l5yjis4s85mq01xww33-gcc-13.2.0-man'에서 'https : //cache.nixos.org'... 복사 경로 '/nix/store/3cfxjb2nkjkfiv0dq54kkfy5ysjnfs3k-gcc-13.2.0-checksum'에서 'https : //cache.nixos.org'... '/nix/store/xx629d9kbbdnnyf4ihzhlmalfz6nm3g-user-environment.drv'...
GCC가 설치되어 있는지 또는 명령을 사용하지 않는지 확인하십시오.
$ gcc -v
샘플 출력 :
내장 사양을 사용합니다. Collect_GCC = GCC collect_lto_wrapper =<strong><mark> /nix/store/rqga421d43q40blrrgmiw820p01a4nba-gcc-13.2.0</mark> /libexec/gcc/x86_64-unknown-linux-gnu/13.2.0/lto-wrapper 대상 : x86_64-unknown-linux-gnu Configured with: ../gcc-13.2.0/configure --prefix=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gcc-13.2.0 --with-gmp-include=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gmp-6.3.0-dev/include --with-gmp-lib=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gmp-6.3.0/lib --with-mpfr-include=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mpfr-4.2.1-dev/include --with-mpfr-lib=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mpfr-4.2.1/lib --with-mpc=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libmpc-1.3.1 --with-native-system-header-dir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.38-44-dev/include --with-build-sysroot=/ --with-gxx-include-dir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gcc-13.2.0/include/c /13.2.0/ --program-prefix = --enable-lto-disable-libstdcxx-pch-without-included-gettext-with-system-zlib-enable-static-enable-languages = c, c-disable-multilib-enable-plugin-disable-libccc1 --with-isl=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-isl-0.20 --disable-bootstrap --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=x86_64-unknown-linux-gnu 스레드 모델 : posix 지원되는 LTO 압축 알고리즘 : Zlib <strong>GCC 버전 13.2.0 (GCC)</strong></strong>
위의 출력에서 알 수 있듯이 GCC는 RQGA421D43Q40BLRRGMIW820P01A4NBA-GCC-13.2.0 이라는 하위 디렉토리에 있습니다.
여기서는 디렉토리 RQGA421D43Q40BLRRGMIW820P01A4NBA-GCC-13.2.0을 고유 식별자로 호출합니다. 이 하위 디렉토리는 GCC 패키지의 필요한 모든 종속성 및 라이브러리를 보유합니다.
다른 버전의 GCC를 설치하면 NIX는 새 하위 지시 사항 (예 : /nix/store/rfhfyuq ......43d8jfuh-gcc-xxx와 같은 새로운 하위 디렉토리를 생성하고 해당 디렉토리에 GCC를 설치합니다. 이런 식 으로이 두 버전의 GCC는 서로 충돌하지 않습니다.
Nix를 사용하지 않고 패키지를 테스트합니다
NIX 패키지 관리자의 또 다른 주목할만한 기능은 패키지를 시스템에 설치하지 않고도 테스트 할 수 있다는 것입니다. 패키지를 설치하지 않고 테스트하는 방법을 알아 보려면 다음 안내서를 참조하십시오.
- Linux에서 패키지를 설치하지 않고 테스트하는 방법
닉스 쉘로 개발 환경을 만듭니다
Nix-Shell을 사용하면 각 프로젝트에 대한 맞춤형 개발 환경을 만들 수 있으며 필요한 모든 도구 및 라이브러리가 완성됩니다. Nix 패키지 관리자의 일부입니다.
재현 가능하고 고립 된 개발 환경을 만드는 방법을 배우려면 다음 안내서를 참조하십시오.
- Linux에서 Nix-Shell을 사용하여 개발 환경을 만드는 방법
업그레이드 패키지
패키지를 다음 사용 가능한 버전으로 업그레이드하려면 다음과 같이 실행하십시오.
$ nix-env-업그레이드 vim
또는, 그냥 :
$ nix -env -u vim
위의 명령은 "최신"버전이있는 경우 VIM 패키지 만 업그레이드합니다.
또한 다음 명령을 실행하여 설치된 모든 패키지를 한 번에 업그레이드 할 수 있습니다.
$ nix -env -u
닉스를 업데이트하십시오
다음 지침은 특히 NIXOS 사용자를위한 것입니다.
닉스 채널을 업데이트하십시오
먼저, 최신 패키지 정의를 갖도록 채널을 업데이트하십시오. 다음 명령 으로이 작업을 수행 할 수 있습니다.
$ nix 채널-업데이트
이 명령은 시스템 패키지 및 구성 정의를 포함하는 Nixos 채널을 포함하여 구독 한 모든 채널을 업데이트합니다.
업데이트 적용
채널이 업데이트되면 시스템에 업데이트를 적용합니다. 이는 채널의 최신 패키지를 사용하여 시스템 구성을 재구성하여 수행됩니다. 그렇게하려면 실행 :
$ sudo nixos-rebuild switch
Nixos-Rebuild Switch 명령은 채널의 최신 패키지를 사용하여 구성 파일 (/etc/nixos/configuration.nix)을 기반으로 시스템 구성을 재구성합니다. 재건 후 즉시 새 구성으로 전환됩니다.
추가 팁 :
- 사용 가능한 업데이트 확인 : 다른 Linux 배포판에서와 같이 사용 가능한 업데이트를 확인하기위한 직접 NIXOS 명령이 없습니다. 그러나 업데이트는 채널 컨텐츠를 기반으로하기 때문에 Sudo Nix-Channel-Update를 실행하면 최신 정의가 있는지 확인합니다.
- 업그레이드 특정 패키지 : Nix-Env에서 관리하는 특정 패키지를 업그레이드하려면 Nix-Env -u
또는 nix-env -u '*를 사용하여 모든 사용자 설치 패키지를 업데이트 할 수 있습니다.
NIXOS 업데이트는 일반적으로 선언적 구성과 NIX의 재현성 덕분에 매끄럽고 잘 테스트되었습니다. 항상 시스템 구성 파일이 원활한 업데이트 경험을 위해 최신 및 버전 제어인지 확인하십시오.
롤백 패키지
이것은 Nix 패키지 관리자의 환상적인 기능입니다. 패키지를 롤백하는 방법을보기 전에 프로필, 사용자 환경 및 세대가 무엇인지 이해해야합니다.
NIX에서 프로파일, 사용자 환경 및 세대는 안전하고 재현 가능한 방식으로 패키지 및 구성을 관리 할 수있는 관련 개념입니다.
프로필
프로필은 특정 목적 또는 사용자를위한 패키지 및 구성 모음입니다. 프로파일을 사용하면 여러 사용자가 서로 영향을 미치지 않고 사용자 정의 설정을 가질 수 있습니다. 다양한 환경이나 응용 프로그램 세트를 효과적으로 관리하는 다른 프로파일을 전환 할 수 있습니다.
프로파일의 두 가지 주요 유형이 있습니다.
- 사용자 프로파일 : 각 사용자 계정에는/nix/var/nix/profiles/user/$ user에 위치한 자체 프로필이 있습니다. 이 프로파일에는 사용자가 개인 용도로 설치 한 패키지가 포함되어 있습니다.
- 시스템 프로파일 : 시스템 전체 프로파일은/nix/var/nix/profiles/system에 있습니다. 일반적으로 시스템 관리자가 관리하는 시스템에서 전 세계적으로 사용할 수있는 패키지가 포함되어 있습니다.
사용자 환경
사용자 환경은 특정 패키지 세트 및 Nix Store (예 : /nix/store/3aw2pdyx2jfc...-user-env)에 설치된 종속성입니다.
Nix-Env를 사용하여 패키지를 설치, 업그레이드 또는 제거 할 때마다 생성됩니다. 사용자 환경은 기본적으로 자체적으로 포장되며 NIX 스토어에 고유 한 암호화 해시가 디렉토리 이름으로 저장됩니다.
사용자 환경은 Symlinks를 통해 사용자 프로파일에 연결되어 다른 사용자가 간섭없이 다른 구성을 가질 수 있습니다.
세대
한 세대는 특정 시점에서 사용자 환경 (설치 한 패키지 세트)의 스냅 샷입니다. Nix-Env를 사용하여 패키지를 설치, 업그레이드 또는 제거 할 때마다 새로운 세대가 생성됩니다.
각 세대는 고유 한 암호화 해시 이름 (예 : /nix/store/3aw2pdyx2jfc...-user-env)으로/nix/store 디렉토리에 저장됩니다. 이러한 생성 디렉토리를 가리키는/nix/var/nix/profiles (예 : 기본 -2 링크, 기본 -3- 링크)에 Symlinks가 있습니다.
세대의 주요 장점은 Nix-env-rollback 및 nix-env-스위치 생성 명령과 같은 명령을 사용하여 다른 패키지 구성을 쉽게 롤백하거나 전환 할 수 있다는 것입니다.
이것을 간단한 단어로 넣으려면 :
- 프로파일은 사용자 또는 시스템을위한 패키지 및 구성 모음입니다.
- 사용자 환경은 NIX 스토어에 저장된 특정 설치 패키지 세트입니다.
- 세대는 패키지를 설치, 업그레이드 또는 제거 할 때마다 생성 된 사용자 환경의 스냅 샷으로 구성간에 쉽게 롤백과 전환이 가능합니다.
이 접근법은 시스템 신뢰성, 재현성 및 현재 설정을 위험에 빠뜨리지 않고 다른 패키지 구성으로 안전하게 실험 할 수있는 능력을 촉진합니다.
세대를 나열하는 방법
사용 가능한 세대 목록을 보려면 :
$ nix-env-목록 생성
이 명령에는 현재 프로필에 사용 가능한 모든 세대가 나와 있습니다. 출력은 생성 번호, NIX 스토어의 경로를 보여주고 현재 어떤 생성이 활성화되어 있는지 나타냅니다.
예제 출력 :
1 2024-04-01 15:06:49 2 2024-04-01 15:17:14 3 2024-04-01 15:56:46 (현재)
이전 세대에 대한 롤백
패키지를 설치했지만 유용하지 않거나 제대로 작동하지 않습니다. 동일한 패키지의 하위 버전이 필요합니다. 당신은 무엇을 하시겠습니까? 단순한. 명령을 사용하여 이전 작업 버전으로 롤백합니다.
$ nix-env-롤백
이 명령은 현재 사용자 환경을 이전 세대로 되돌립니다. 예를 들어, 현재 3 세대에 있고 Nix-Env-Rollback을 실행하는 경우 2 세대로 전환됩니다.
스위치 세대
명령을 사용하여 다른 세대간에 전환 할 수 있습니다.
$ nix-env-스위치 생성 <no></no>
이 명령을 사용하면 특정 세대로 전환 할 수 있습니다. 예를 들어, Nix-env-스위치 생성 2는 이전 세대가 아닌 경우에도 사용자 환경을 Generation 2로 전환합니다.
요약하면, 세대는 패키지 구성을 관리하고 롤백하는 방법을 제공합니다. -list-generations는 어떤 세대를 사용할 수 있는지 보여줍니다. nix-env-rollback 명령은 마지막 변경을 취소하는 편리한 방법이며-스위치 생성을 통해 특정 세대를 선택할 수 있습니다.
이 세대 관리 접근 방식은 현재 설정에 영향을 미치지 않고 잘못된 변경 사항을 쉽게 되돌리거나 새로운 구성을 테스트 할 수있어 시스템 신뢰성을 촉진합니다.
패키지 제거
Unstalla 패키지를 위해 실행 :
$ nix -env -e gcc
위의 명령은 시스템에서 GCC 라는 패키지를 제거합니다.
아래와 같이 여러 패키지를 제거 할 수 있습니다.
$ nix -env -e gcc vim
샘플 출력 :
제거 'vim-9.1.0148' 'GCC-13.2.0'제거 건물 경로 '/nix/store/mxpikbq3l08379h8ik8mrj3fcw6mhy4- 사용자-환경' ' 사용자 환경에서 6 개의 상징 링크를 만들었습니다
사용하지 않은 패키지 제거 (Garbage Collection)
Nix에서는 Nix-Env를 사용하여 (-u) 또는 제거 (-e) 프로그램을 업데이트 할 때 시스템은 실제로 Nix Store (예 :/nix/store/directory)에서 이전 버전을 삭제하지 않습니다. 대신, 제거 된 프로그램에 대한 링크없이 프로필을 새로 설정합니다. 다시 말해, 프로필에서 심볼 링크 만 제거됩니다.
그러나 디스크 공간이 부족하지 않고도 새로운 프로그램을 계속 추가 할 수 없기 때문에 Nixos는 Garbage Collection 이라는 사용하지 않는 프로그램을 정리할 수있는 방법이 있습니다. 쓰레기 수집가는 프로필이나 버전 (세대)이 더 이상 필요하지 않은 프로그램을 제거합니다.
그러나 이전 버전의 설정에 여전히 프로그램이 필요한 경우 제거되지 않습니다. 이 기능은 필요한 경우 이전 설정으로 돌아갈 수있는 데 중요합니다.
쓰레기 수집가가 업무를 수행하도록 돕기 위해 더 이상 사용하지 않는 오래된 버전을 제거하는 것이 좋습니다. 당신이 할 수있는 방법은 다음과 같습니다.
프로필의 현재 버전을 제외한 모든 이전 버전을 삭제하십시오.
$ nix-env-델리 세대 오래된
예를 들어 버전 10, 11 및 14와 같이 더 이상 필요하지 않은 특정 버전을 제거하십시오.
$ nix-env-Delete-Generations 10 11 14
30 일이 넘는 버전 삭제 :
$ nix-env-Delete-Generations 30d
오래된 버전을 청소 한 후 쓰레기 수집기를 실행하여 사용하지 않은 프로그램을 제거하십시오.
$ nix-store-gc
실제로 실행하기 전에 쓰레기 수집가가 삭제할 파일을 확인할 수 있습니다.
$ nix-store-gc --print-dead
그리고 어떤 파일이 남아 있는지 확인하기 위해 :
$ nix-store-gc --print-live
Nix-Collect-Garbage 청소를위한 편리한 도구가 있으며, 모든 프로파일에서 모든 기존 버전을 한 번에 제거 할 수 있습니다. -d 옵션과 함께 사용하십시오.
$ nix-collect-garbage -d
이 명령은 오래된 버전을 제거한 다음 쓰레기 수집기를 실행하여 불필요한 프로그램을 정리함으로써 시스템을 정리하는 쉬운 방법입니다.
예제 출력 :
쓰레기 수집가 뿌리 찾기 ... 쓰레기 삭제 ... '/nix/store/s4jr4dc9gghldr3xza23rw0gm9kp21kl-nix-prefetch-scripts.drv'삭제 '/nix/store/km2gyzlvs9vkrr52wxfyhinv4r52ksrj-nix-prefetch-bzr.drv 삭제'삭제 '/nix/store/7mi73sdc1p349vmpb5nyxsrv8ayk5hly-bazaar-2.7.0.drv 삭제'삭제 [...] '/nix/store/8ckmcs9hx1qm0yxdnv892vrvx49zm1sq-setup-hook-2.0.sh'삭제 '/nix/store/trash'삭제 사용하지 않은 링크 삭제 ... 참고 : 현재 하드 링크는 -0.00 MIB를 저장합니다 1447 매장 경로 삭제, 12.65 MIB Freed
이것은 실제로 제거되지 않은 패키지를 제거합니다.
시스템에서 사용되지 않은 패키지를 제거하려면이 명령을 주기적으로 실행해야합니다.
닉스 명령 치트 시트
다음은 닉스 패키지 관리자 명령을위한 깔끔한 치트 시트입니다. 인쇄하고 책상 근처에 보관하여 쉽게 참조하십시오.
행동 | 명령 | 예 |
---|---|---|
패키지를 설치하십시오 | nix-env -i |
nix -env -i firefox |
패키지 제거 | nix-env -e |
Nix -env -e Firefox |
패키지 검색 | nix -env -qap | Nix -env -qap 파이썬 |
업데이트 패키지 | nix-env -u |
Nix -env -u Firefox |
설치된 패키지 목록 | 닉스 엔브 -Q | 닉스 엔브 -Q |
롤백 변경 | 닉스-엔브-롤백 | 닉스-엔브-롤백 |
쓰레기 수집 | Nix-Collect-Garbage -D | Nix-Collect-Garbage -D |
이 치트 시트는 Nix로 패키지를 관리하는 데 사용할 기본 명령을 다루며 시스템 시작 및 유지 관리에 대한 간단한 가이드를 제공합니다.
자주 묻는 질문
다음은 Nix 패키지 관리자에 대한 가장 자주 묻는 질문 (FAQ)입니다.
Q : 닉스 란 무엇입니까?A : NIX는 재현성, 신뢰성 및 이식성에 중점을 둔 Linux 및 UNIX 시스템의 강력한 패키지 관리자입니다. 이를 통해 사용자는 다양한 버전의 소프트웨어와 종속성을 쉽게 설치, 관리 및 전환 할 수 있습니다.
Q : Nix를 사용하여 패키지를 어떻게 설치합니까?A : 패키지를 설치하려면 Nix -env -i 명령과 패키지 이름을 사용하십시오. 예를 들어, Nix -env -i Firefox는 Firefox 웹 브라우저를 설치합니다.
Q : 패키지를 어떻게 제거 할 수 있습니까?A : 패키지를 제거하려면 Nix -Env -e 명령을 사용한 다음 패키지 이름을 사용하십시오. 예를 들어, Nix -env -e Thunderbird는 Thunderbird 이메일 클라이언트를 제거합니다.
Q : 사용 가능한 패키지를 어떻게 검색합니까?A : 패키지를 검색하려면 nix -env -qap 을 사용하십시오. 예를 들어, Python과 관련된 패키지를 찾으려면 Nix -Env -Qap Python을 사용할 수 있습니다.
Q : 특정 패키지를 업데이트 할 수 있습니까? A : 그렇습니다. 특정 패키지를 업데이트하려면 nix-env -u
A : 설치된 모든 패키지를 나열하려면 nix -env -Q 명령을 사용하십시오.
Q : 채널에서 사용 가능한 모든 패키지를 어떻게 나열 할 수 있습니까?A : 채널에서 사용 가능한 모든 패키지를 나열하려면 Nix -Env -Qa를 실행하십시오.
Q : 이전 상태로 되돌리거나 "롤백"변경은 어떻게하나요?A : Nix는 "세대"의 변화를 추적합니다. 이전 세대로 롤백하려면 nix-env-rollback을 사용하십시오. Nix-Env-목록 생성으로 사용 가능한 세대를 나열 할 수 있습니다.
Q : 닉스 시스템을 깨끗하게 유지하려면 어떻게해야합니까?A : Nix-Collect-Garbage -D를 사용하여 사용되지 않은 패키지를 제거하고 공간을 확보하십시오. 이 명령은 프로필에서 참조되지 않은 패키지를 정리합니다.
결론
NIX 패키지 관리자는 Linux 및 UNIX 시스템에서 소프트웨어 패키지를 관리하는 강력하고 유연한 방법을 제공합니다.
패키지 처리에 대한 접근 방식은 충돌이나 종속성 문제없이 다양한 버전의 소프트웨어를 설치, 업데이트 및 전환 할 수 있도록합니다.
Nix는 특히 개념에 새로운 사람들에게는 약간의 학습 곡선을 가질 수 있지만 정확하고 재현 가능한 패키지 관리의 이점은 중요합니다.
개발자, 시스템 관리자이든 호기심 많은 사용자이든 NIX를 배우는 데 시간을 내면 소프트웨어 환경에 대한 제어를 크게 향상시키고 워크 플로우를 간소화 할 수 있습니다.
그게 다야. Nix 패키지 관리자의 기본 사용 에 대한 명확한 아이디어를 얻었 으면 좋겠습니다. 우리가 여기서 다룬 것은 닉스를 시작하기에 충분해야합니다.
물론 많은 명령이 있습니다. 더 많은 NIX 명령을 배우려면 아래에 제공된 NIX 공식 설명서를 참조하는 것이 좋습니다.
의지:
- 닉스 매뉴얼
위 내용은 Nix 패키지 관리자로 시작하기 : 초보자 가이드 2024의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Linux는 서버 관리, 임베디드 시스템 및 데스크탑 환경으로 사용되는 것이 가장 좋습니다. 1) 서버 관리에서 Linux는 웹 사이트, 데이터베이스 및 응용 프로그램을 호스팅하는 데 사용되어 안정성과 안정성을 제공합니다. 2) 임베디드 시스템에서 Linux는 유연성과 안정성으로 인해 스마트 홈 및 자동차 전자 시스템에서 널리 사용됩니다. 3) 데스크탑 환경에서 Linux는 풍부한 응용 프로그램과 효율적인 성능을 제공합니다.

Linux의 5 가지 기본 구성 요소는 다음과 같습니다. 1. 커널, 하드웨어 리소스 관리; 2. 기능과 서비스를 제공하는 시스템 라이브러리; 3. 쉘, 사용자가 시스템과 상호 작용할 수있는 인터페이스; 4. 파일 시스템, 데이터 저장 및 구성; 5. 시스템 리소스를 사용하여 기능을 구현합니다.

Linux는 서버, 임베디드 시스템 및 데스크탑 환경에서 널리 사용됩니다. 1) 서버 필드에서 Linux는 안정성 및 보안으로 인해 웹 사이트, 데이터베이스 및 응용 프로그램을 호스팅하기에 이상적인 선택이되었습니다. 2) 임베디드 시스템에서 Linux는 높은 사용자 정의 및 효율성으로 인기가 있습니다. 3) 데스크탑 환경에서 Linux는 다양한 사용자의 요구를 충족시키기 위해 다양한 데스크탑 환경을 제공합니다.

기본 Linux 학습 방법은 다음과 같습니다. 1. 파일 시스템 및 명령 줄 인터페이스 이해, 2. LS, CD, MKDIR, 3. 파일 생성 및 편집과 같은 파일 작업 배우기, 4. 파이프 라인 및 GREP 명령과 같은 고급 사용법, 5. 연습 및 탐색을 통해 지속적으로 기술을 향상시킵니다.

Linux 장치는 서버, 개인용 컴퓨터, 스마트 폰 및 임베디드 시스템을 포함한 Linux 운영 체제를 실행하는 하드웨어 장치입니다. 그들은 Linux의 힘을 활용하여 웹 사이트 호스팅 및 빅 데이터 분석과 같은 다양한 작업을 수행합니다.

인터넷은 단일 운영 체제에 의존하지 않지만 Linux는 이에 중요한 역할을합니다. Linux는 서버 및 네트워크 장치에서 널리 사용되며 안정성, 보안 및 확장 성으로 인기가 있습니다.

Linux의 단점에는 사용자 경험, 소프트웨어 호환성, 하드웨어 지원 및 학습 곡선이 포함됩니다. 1. 사용자 경험은 Windows 또는 MacOS만큼 친절하지 않으며 명령 줄 인터페이스에 의존합니다. 2. 소프트웨어 호환성은 다른 시스템만큼 좋지 않으며 많은 상용 소프트웨어의 기본 버전이 부족합니다. 3. 하드웨어 지원은 Windows만큼 포괄적이지 않으며 드라이버를 수동으로 컴파일 할 수 있습니다. 4. 학습 곡선은 가파르고 명령 줄 운영을 마스터하는 데 시간과 인내가 필요합니다.

Linux 운영 체제의 핵심은 명령 줄 인터페이스이며 명령 줄을 통해 다양한 작업을 수행 할 수 있습니다. 1. 파일 및 디렉토리 작업 LS, CD, MKDIR, RM 및 기타 명령을 사용하여 파일 및 디렉토리를 관리합니다. 2. 사용자 및 권한 관리는 UserAdd, Passwd, CHMOD 및 기타 명령을 통해 시스템 보안 및 리소스 할당을 보장합니다. 3. 프로세스 관리는 PS, Kill 및 기타 명령을 사용하여 시스템 프로세스를 모니터링하고 제어합니다. 4. 네트워크 운영에는 Ping, Ifconfig, SSH 및 기타 명령이 포함되어 있으며 네트워크 연결을 구성하고 관리합니다. 5. 시스템 모니터링 및 유지 관리 Top, DF, Du와 같은 명령을 사용하여 시스템의 작동 상태 및 리소스 사용을 이해합니다.
