본문 바로가기

프로그래밍/C-CPP

[VCPKG] VCPKG OFFLINE 사용하기

반응형

python pip의 편리성에 익숙해진 사람(나)들은 cpp 오픈소스 라이브러리들을 빌드하며 무수히 머리털을 뽑아냈다. (너무 고달펐음. 빌드뿐 아니라, 라이브러리, 인클루드 패쓰 설정하고 하는 것도)

마이크로소프트에서 visual studio 에 오픈소스 라이브러리들을 매끄럽게 통합시키는 vcpkg 라는 툴을 (이미 몇년 전에)개발했다는 걸 알았다. 이걸 테스트해 보려고 하고 있는데...

안타깝게도, vcpkg 는 vcpkg install zlib 와 같은 명령을 때리면, 오픈소스 라이브러리 소스를 네트워크를 통해 다운로드 받아와서, 빌드를 진행한다.

그래서, 인터넷 연결이 되지 않는 내 주 개발환경에서는 vcpkg 를 쓸 수 없는 것인가 하고 낙담하고 있는 중에, 다음과 같은 글을 reddit 에서 발견했다.


PM_ME_A_SPECIAL_MOVE : 사설서버를 이용하는 방법이 있을까? 내 오프라인 환경에서도 사용해 보고 싶다.

roschumaMSVC Libs Dev :

물론 오프라인 모드도 완전히 지원합니다! 네트워크 접근이 필요한 것은, 소스코드와 툴을 다운로드 할 때 뿐입니다. 모든 다운로드들은 캐시되어 있습니다.

그러니까, 네트워크에서 한번 전체 빌드를 한 이후에는, 빌드시에 캐시된 패키지들을 가지고, 오프라인에서 재빌드를 할 수 있습니다.

그리고, 사설서버를 이용하고 싶다고 할 때, 종종 원하는 기능은 자신의 패키지를 더할 수 있겠느냐는 것인데요. 이것도 완전히 지원됩니다. 포트(포팅 패키지) 리스트를 ports 디렉토리에서 가져오게 됩니다. 그러니까, 자신의 포크(github fork)에 원하는 패키지를 자유롭게 체크인하면 됩니다. 공식 패키지들을 업데이트하기 위해선, 간단히 머징만 하면 되겠습니다.


https://redd.it/5ud9sr

[–]PM_ME_A_SPECIAL_MOVE  : There's a way to use a private server? I really want to use it on my offline environment :(

[–]roschumaMSVC Libs Dev / Vcpkg :

Yep, we totally support usage in an offline mode! The only thing we need network access for is to download the source code or tools to build the package you've requested, however we cache every download.

So, once you've done a full build with access to the network once, you can rebuild those packages as much as you'd like completely offline.

Another often-implied feature of a private server is adding private packages. This is totally supported as well! We get our list of ports from the ports\ directory on disk (no network access), so you're free to add as many as you like and check them in to your private fork. Whenever you'd like to update the "official" packages, you can use git to simply merge the changes to that directory from our GitHub.


한번 해 봐야겠다. 홍홍홍.

좀 검색해 보니, pip 만큼 아무 문제 없이 모든 것이 잘 흘러가지는 않을 것 같지만, 충분히 많은 노가다를 줄여주기를 기대해 본다.





728x90