Lobsters

ncdu: NCurses Disk Usage (an updated fork)

ncdu: ncurses 디스크 사용량 분석기 — Zig 기반 업데이트 포크

ncdu는 터미널에서 디스크 사용량을 살펴보고 공간을 많이 차지하는 파일과 디렉터리를 찾는 도구입니다. 이 포크는 Zig 0.17에 맞춰 업데이트했으며, ncurses를 지원하는 POSIX 계열 환경에서 실행됩니다.

AI 요약

ncdu는 ncurses 인터페이스를 갖춘 디스크 사용량 분석기입니다. 그래픽 환경이 없는 원격 서버에서 용량을 많이 차지하는 항목을 찾도록 설계했지만, 일반 데스크톱에서도 쓸 수 있습니다. 빠르고 단순한 도구를 지향하며 ncurses가 설치된 최소 POSIX 계열 환경을 지원합니다.

Zig 기반 포크

이 저장소는 Zig로 작성한 ncdu 2.x 계열입니다. 원본 C 구현인 1.x와의 차이는 ncdu 2 출시 안내에서 확인하도록 안내합니다. 빌드에는 Zig 0.17, POSIX 계열 운영체제, ncurses, libzstd가 필요합니다. Zig 빌드 시스템을 사용하거나 Makefile에서 make로 빌드하고 sudo make install PREFIX=/usr로 설치할 수 있습니다.

유지보수와 업데이트

포크 관리자는 이 프로젝트를 학습 자료이자 향후 작업의 기반으로 삼고, 당분간 유지보수하겠다고 밝혔습니다. 현재까지의 변경은 Zig 언어와 라이브러리 변경에 맞춘 업데이트가 중심입니다. 큰 diff에는 zig fmt와 Zig 0.16의 Io 변경이 많이 포함됐으며, 공백 변경을 제외하고 보면 살펴보기 쉽다고 설명합니다. 원 프로젝트는 다중 스레드 스캔 외에는 기능이 대부분 갖춰졌다고 보고 있으며, README에 설치 안내를 추가하고 CI/CD도 도입할 계획입니다.

Lobsters 반응

  • @taschmex — 관련 맥락으로, 원작자 yorhel이 올해 초 세상을 떠났습니다.
    • @pm — 이 소식을 몰랐습니다. 안타깝습니다. ncdu를 여러 해 동안 써왔습니다. 정말 유용한 소프트웨어입니다. 디스크 공간을 확보하는 일을 귀찮은 작업에서 만족스러운 짧은 휴식처럼 바꿔줍니다. 우리 각자가 세상에 이만큼 유용한 것을 하나라도 남긴다면 좋겠습니다. 정말, 겨우 38세였습니다. 우리가 살아 있다는 사실에 얼마나 감사해야 하는지 보여줍니다. 오늘 뭔가 만들어보셨나요? 오늘 즐거운 시간 보내셨나요?
    • @leela — 정말 슬픈 소식입니다. 제가 좋아하는 셸 도구 중 하나로 ncdu를 꼽아왔습니다. 다시 이어서 관리하는 사람이 생겨 다행입니다.
  • @rcalixte — 이 프로젝트는 제게 학습 자료일 뿐 아니라 앞으로 만들 프로젝트의 기반이기도 합니다. 그래서 포크를 만들었고 당분간 유지보수하려고 합니다. 필요한 부분을 업데이트하면서 코드베이스를 알아가는 중이라, 문제가 생기면 최선을 다해 대응하겠습니다. 이슈 목록에서 바로 처리할 문제를 찾지 못했지만, 구현하거나 개선할 일이 없다는 뜻은 아닙니다. 언젠가 CI/CD도 도입하려고 합니다.
    • @sanqui — ncdu 사용자라 업데이트 소식이 반갑습니다. 변경 사항이 나중에 Debian과 Fedora에도 들어가면 좋겠습니다.
    • @rcalixte — Debian은 아직 Zig 패키징 문제로 막혀 있어 시간이 더 걸릴 수 있습니다. Fedora는 이미 이 프로젝트의 다른 포크를 패키징하고 있습니다. 다른 포크가 하나 이상 있다는 점은 알고 있었지만, 그 포크의 일부 결정에는 동의하지 않아 별도로 포크했습니다.
    • @donio — 포크한 뒤 지금까지 어떤 작업을 했는지 알려주실 수 있나요? 커밋 메시지가 자세하지 않고 diff도 꽤 큽니다. 대충 살펴보니 Zig 언어와 라이브러리 변경을 따라가는 작업이 중심인 듯합니다.
    • @rcalixte — 맞습니다. diff에서 가장 눈에 띄는 부분은 zig fmt와 Zig 0.16의 Io 변경입니다. 공백 변경을 끄고 보면 내용을 파악하기 쉽습니다. 원 프로젝트는 다중 스레드 스캔 외에는 기능이 거의 완성됐다고 생각합니다. 나중에 README에 설치 방법 등도 추가하고 싶습니다. 이 프로젝트를 바탕으로 만드는 향후 프로젝트에서는 더 주관적인 변경을 할 예정입니다.

원문: GitHub / 번역·요약: Trawling