이 서버를 세팅하면서 가장 자주 반복된 문제 하나를 꼽으라면 단연 apt-get입니다. Hugo, Caddy, 한글 폰트 패키지까지 — 덩치가 좀 있는 패키지를 설치하려 할 때마다 모바일 네트워크 환경에서 다운로드가 멈춘 채로 응답이 없는 상황을 여러 번 겪었습니다. 이번 글은 그 문제를 어떻게 우회했는지 기록입니다.

증상: 멈췄는지 느린 건지 구분이 안 된다

apt-get install -y <패키지>를 실행하면 진행률 표시 없이 그냥 멈춘 것처럼 보이는 경우가 많았습니다. timeout 60으로 감싸서 실행해도 60초 안에 끝나지 않고 그대로 종료(exit code 143)되는 일이 반복됐는데, 재시도해도 같은 패턴이 이어졌습니다. 원인은 명확히 특정하지는 못했지만, 모바일 데이터/와이파이 전환 구간에서 저장소 미러 서버와의 연결이 불안정했던 것으로 추정합니다.

설치 우회 과정

우회 방법: 결과물만 직접 받아온다

apt-get이 하는 일은 결국 패키지 저장소에서 .deb 파일을 받아 dpkg로 설치하는 것입니다. 그렇다면 저장소를 거치지 않고 그 소프트웨어의 공식 GitHub Releases 페이지에서 .deb 파일(또는 바이너리 아카이브)을 직접 curl로 받아와도 결과는 같습니다. 실제로 이 방식으로 해결한 사례들입니다.

  • Hugo: GitHub Releases에서 arm64용 .deb를 받아 dpkg -i로 설치
  • Caddy: 마찬가지로 릴리스 바이너리를 직접 받아 설치
  • 한글 폰트(NanumGothic): apt-get install fonts-nanum이 멈춘 뒤, Google Fonts 미러 저장소에서 .ttf 파일을 직접 받아 /usr/share/fonts/에 배치하고 fc-cache -f로 갱신

주의할 점

이 방법은 의존성(dependency)을 자동으로 해결해주지 않는다는 단점이 있습니다. 순수 바이너리이거나 의존성이 거의 없는 패키지에서는 잘 통하지만, 의존성이 복잡한 패키지라면 하나씩 수동으로 받아야 할 수도 있습니다. 그래도 “저장소 접속 자체가 불안정한 환경"에서는 이 쪽이 훨씬 예측 가능하고 빠른 방법이었습니다.

핵심 요약

🤖 이 포스팅은 AI의 도움을 받아 작성되었습니다.