
Lix가 보안, 디버거, 사용 편의성을 개선한 버전 2.96 ‘Bingsu’를 출시했다. 이번 버전은 ssh:// 저장소 URI를 폐지할 예정이라고 알렸으며, 실험적 RPC 프로토콜과 Rust 지원 작업도 이어간다.
Lix는 신뢰성과 예측 가능성에 초점을 둔 Nix 구현체다. 전체 변경 사항은 Lix 2.96 릴리스 노트에서 확인할 수 있다.
REPL과 디버거가 개선돼 디버거가 더 안정적으로 동작하고, 내부 탐색과 출력 정보 확인이 쉬워졌다. REPL의 백엔드를 editline에서 rustyline으로 바꿔 UTF-8도 제대로 지원한다.
실험적 RPC 프로토콜은 rpc-sockets 실험 기능으로 제공된다. Lix 설정에서 실험 기능을 활성화해야 하며, 별도의 시스템 설정도 필요하다. 이 설정은 아직 NixOS 모듈에서 자동으로 제공되지 않는다. 예시는 Lix 저장소의 NixOS 모듈 변경에서 볼 수 있다. Lix는 향후 RPC 프로토콜을 안정화하고 기존 프로토콜 지원을 제거할 계획이다.
ssh:// 저장소 URI는 2.96에서 사용 중단이 예고됐지만, 경고 없이 계속 사용할 수 있다. 지원은 Lix 2.97에서 제거될 예정이며 ssh-ng:// URI는 계속 지원한다. ssh-ng는 안정화됐고 ssh와의 기능 차이도 해소됐지만, 완전한 기능 호환성은 Lix 2.96 이상에서만 쓸 수 있다. 이전 버전의 Lix나 다른 Nix 구현체와 연결하면 이전 동작으로 조용히 대체된다. 또한 ssh-ng는 보안 검사가 더 엄격해 서명되지 않은 출력을 신뢰할 수 없는 사용자가 원격 저장소에 복사할 수 없다.
주요 변경 사항에는 flake.nix 입력에서 let 블록과 문자열 보간을 허용하는 검증 방식 변경, 정밀도 손실이 발생하는 floor·ceil 연산의 오류 처리, 저장소에 없는 경로를 삭제하기 전에 내려받던 일부 nix3 명령의 동작 수정이 포함된다. 내부 파일을 Nix 검색 경로로 덮어쓰는 행위도 별도 설정이 없으면 오류가 된다. 이런 변경으로 Lix에서 작성한 Flake가 다른 Nix 구현체에서 평가되지 않을 수 있다.
새 기능으로는 --arg와 --argstr을 이용해 중첩 인수를 설정하는 기능, 동일한 입력을 여러 프로세스가 동시에 내려받지 않도록 하는 처리, 압축 해제 속도를 높일 수 있는 zst 압축 채널 지원이 추가됐다. nix doctor는 시스템 정보와 원격 빌더 설정을 보고하고, 설정된 원격 빌더 상태를 확인할 수 있다. Lix 팀은 mimalloc을 사용해 평가 시간이 5~12% 개선됐다고 밝혔다.
기존 CppNix나 Lix에서 업그레이드하는 방법은 설치 방식에 따라 다르며, Lix 설치 안내를 따라야 한다. 릴리스는 nix upgrade-nix 사용을 권하지 않고, 안내에 있는 Lix 업그레이드 셸 스크립트를 이용하라고 설명한다. NixOS에서 nixpkgs를 통해 Lix를 설치했다면 업그레이드 풀 리퀘스트가 빌드 팜을 거쳐 사용하는 채널에 반영된 뒤 nixpkgs를 업데이트하면 되며, 별도 작업은 필요하지 않다. 다음 버전 테스트에 참여하려면 베타 안내를 참고할 수 있다.
Rust 연동도 진행 중이다. Lix 팀은 상호 운용에 zngur를 사용하기로 했으며, REPL과 원격 빌더 설정, 해시 변환 코드 상당 부분을 Rust로 옮겼다고 밝혔다. 곧 나올 2.96.1에는 ssh-ng 저장소에서의 --keep-going 지원, Git 가져오기의 SHA256 지원 등 일부 개선 사항을 포함할 계획이다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요