이번에 내친 김에... 한번 컴파일로 다양한 배포판에 적용시킬 수 있는 방법 찾음.

비법은 전통적으로 사용해온 abi 버전.

보통 debuild 라는 툴로 .deb 파일을 제작하게 되는데,

수작업으로 control 을 작성하고 dpkg-deb --build 명령으로 제작하면 abi 버전만 맞으면 우분투, 데비안 등 여러 배포판에 설치/실행 가능함.

libname.so.X.y.z 이런 식인데, libname.so.X.y.z 에서 X가 맞으면 하위 호환성이 지켜짐.

데비안 패키지 이름은 libnameX 가 되어야 함.

그러나 control 파일에 Depends: ${shlibs:Depends}, ${misc:Depends} 이런 거 넣어서 debuild 라는 툴로 .deb 파일을 제작하게 되면,

libnameX (>= 현재 설치된 버전) 이런 식으로 자동으로 control 을 만들기 때문에,

그거 때문에 호환이 안 되었던 거임.

결국 snap 같은 물건 없어도 abi 버전만 맞으면 옛날부터 호환이 되고 있음.

control 파일 작성할 때, abi 버전에서 x,  y 버전만 체크하면 됨.

즉 소스코드 작성 당시에 사용하던 라이브러리의 x, y 버전보다 같거나 큼 (>= 당시 X버전.당시 Y버전) 해주면 됨.

킹자로는 롤링 업데이트니까... 버전 체크할 필요가 엄슴.