해당 문서는 vyos 1.4 이전의 build 방법을 기술한다. 현재 github에 등록된 vyos는 정책 변경으로 이전 버전이라고 하더라도 무결성이 깨져버려서 유효하지 않게 되었다. 삭제할까하다라 단지 참고용으로 남겨둔다.
vyos의 정책은 안정화버전인 LTS 빌드의 경우 기업 대 기업에 준하는 비용을 지불해야한다.
개인이 이용하는 경우 nightly build 된 iso 또는 소스에서 직접 빌드하는 방법을 사용하면 무료로 사용할 수 있게된다.
또한 aws또는 azure등 에서 적용하기 위해서는 기능을 구입하여 시간당 사용료를 비용을 지불해야하지만 직접 빌드 버전을 사용할 경우 그 비용을 절약할 수 있다. aws에서 2-3년간 vyos를 운용하였는데 무겁지가 않아 다른 라우팅 OS에 비해 확실히 장점을 가진다.
단, nightly build 는 rolling release 1.5정도면 어느정도 안정화가 이루어져있지만 계속 내부 기능을 추가하는 작업들이 있어서 오류 또는 설정이 문제가 수시로 발생하는 단점이 있다.
RC > EPA (Early Production Access) > LTS (Long Term Support Release) 순이다.
경험상 RC의 경우 기능 문제를 떠나서 유틸리티파일들의 패키지들이 빠져있다던가 하는 일들이 있어서 추천하지 않고 EPA 정도까지는 되어야 어느정도 사용할 수 있을 정도였다.
빌드머신으로는 정식 iso로 설치한 baremetal 또는 vm을 추천한다. 한 번은 proxmox의 CT에서 빌드하려고 했지만 CT가 최적화가 되어있어 빌드 실패가 발생하고는 하였다. 그러고보니 리눅스 커널 컴파일할 때도 CT에서 문제생겼었던 것 같은데;;;;;;
1.3에서 epa를 배포했었으나 1.4에서는 epa마저도 따로 배포하지 않고 있다.
이 문서를 따르면 된다.
https://github.com/vyos/vyos-build/
빌드에는 두가지 방법을 제시하고 있다.
1. 소스에서 직접 빌드
2. 도커 환경에서 빌드
두 가지 차이점이 뭐냐고 이야기한다면 2번이 삽질이 좀 더 적게들어간다라고 이해하면 되겠다.
1. 소스에서 직접 빌드하는 경우 os에서 직접 빌드하는 것이기 때문에 필요판 패키지, gcc 버전들이 os에 설치된 버전을 따르게 된다. 그래서 빌드하다가 문제가 발생할 경우 dependancy 문제가 생길 수 있다.
docker의 경우 해당 release를 빌드할 때의 환경을 동일하게 유지하도록 구성할 수 있어 되도록 안정된 환경에서 빌드할 수 있다.
1번은 나에게 물어보지 말고 직접 해보기바란다.
OS 및 빌드 환경에 대해서
1.4가 상당히 오래 걸린 것 같은데 한 3년 정도 걸린 것 같다. debian bullseye와 ubuntu 18? 20? 둘 다에서 동작하였는데 어느 순간부터 debian 12 bookworm으로만 확정하였다.
정신건강을 위해서 debian 12를 설치하도록 하자. 다들 VM 하나씩은 돌리시잖아요?
Docker
새로 설치한 OS라면 도커를 설치한다. 이미 도커를 운영하고 있다면 아래 단계대로 빌드용 docker를 설치한다.

https://docs.vyos.io/en/latest/contributing/build-vyos.html
다음을 보면 docker.list에 가지고올 apt가 제대로 구성된 것을 확인할 수 있다.


다음 빌드하려는 현재 계정을 docker 그룹에 추가한다. 이 부분은 해도되고 안해도 되는데 현재 다른 docker 서비스를 돌리고 있을 경우에는 굳이 추가 안해도 무방하다. docker 구동시 root 권한을 필요로 하는데 sudo 로 실행해도 전혀 지장이 없었다.
다음은 build할 docker container를 가져오는 단계이다. 여기에서도 2가지 방법을 제시하는데.
1. docker hub에서 이미 구성된 환경을 가져오는 방법
2. 소스를 가져와서 직접 빌드하는 방법
빌드 환경이므로 어느정도 구성은 갖추어져 있어서 1번을 하는 것이 간편하다. 2번의 경우 내가 빌드하려는 버전의 dependancy 문제가 생겼을 때에나 도전해보는 것이 나을 것이다.
Tips and Tricks
docker 진입시 커맨드 창에 좀 길게 입력해야하는데 배치파일을 만들어서 실행하라는 이야기이다 입맛에 맞는 배치파일을 만들어서 쓰면 되겠다.
여기까지 진행하였으면 기본적인 준비는 끝난 상태이다.
git에서 소스파일을 가져온다.

버전에 대해서는 다음 링크를 참고한다.
현재 브렌치의 최신 버전을 가져온다. 만약에

여기에서도 선택지가 두 가지가 있다.
현재 release된 버전에서 오류등이 개선된 뭔가 중간적인 부분이 적용된다.
만약에 버전을 정확하게 맞추어서 빌드하고 싶은 경우 –build-type release –version <버전 이름> 을 지정해준다.
버전의 정확한 명칭은 다음 링크를 참고한다.
https://github.com/vyos/vyos-build/tags

커피 한 잔 마시고 오자.
버전 넘버를 잘못 입력하면 빌드 단계에서 멈춘다.
커피를 다 마셨고 빌드가 정상적으로 완료되었으면 build 디렉토리를 들어가본다. iso가 생성되었다면 profit!

생성된 iso 파일로 설치를 진행해본다.