카테고리 보관물: Tools & Tips

Firewall 바깥의 git을 clone하기

Firewall등이 막고 있어서 외부의 git repository를 HTTPS로는 clone할 수 있지만 SSH로는 막히는 경우가 있다. 특히나 GitHub의 two-factor authentication을 설정한 경우라면 매번 token값을 입력하는 것 때문에 commit을 push하는게 매우 귀찮아진다.

이 문제는 ssh config file에 Proxy command를 설정해서 해결할 수 있는데
${HOME}/.ssh/config에 다음과 같이 추가해 주고, (-S option에는 SOCKS port를 설정해야 한다)

credential caching을 설정해 준다.

[Tip] Fedora CUI booting 설정

Fedora (Version26, Workstation edition)은 /etc/inittab file로 runlevel을 변경하던 이전의 방식은 지원되지 않는다. /etc/systemd/system/default.target file을 보면 /lib/systemd/systm/graphical.target으로 link되어 있는데 이것을 multi-user.target으로 변경해 주면 CUI console로 진입할 수 있다.

설정 후 시스템을 리붓하면 CUI로 booting되고 startx 명령으로 GUI를 불러 올 수 있다. Display Manager를 띄우지 않기 때문에 GUI에서 logout하면 CUI로 되돌아온다.

 

[Tip] WinDbg에서 경로가 다른 PDB의 source를 load하기

Windows에서 WinDbg로 디버깅할 때, PDB에 적혀있는 절대경로 때문에 다른 machine에서 빌드한 바이너리(dll/sys/exe)를 디버깅할 때는 소스가 맞지 않아 번거롭다. 이 것을 해결하는 방법으로 source indexing을 사용하라는 글이 있기는 했었는데 내가 뭐 배포정책을 바꿀만큼 힘이 있는 것도 아니고… 아주 약간(!) 지저분 하긴 하지만 Windows의 subst 명령어를 사용해서 PDB에 적힌 경로를 흉내내는 것으로 이 문제를 해결할 수 있었다.

 

PDB에 있는 절대 주소와 내 로컬 소스의 주소가 각각 다음과 같다고 가정한다.

즉, Local path의 EEE directory에 PDB path EEE가 연결되도록 만들면 된다. D:가 유효하다면 그걸 사용하면 되지만, 이 글에서는 C:만 사용가능한 상태라 가정한다.

먼저 C:에 가짜 디렉토리 ‘AAA\BBB\CCC\DDD’를 만든다. 꼭 C: 밑에 바로 만들지 않더라도 나중에 subst 명령어에서 경로 지정만 잘 해주면 된다. 상황에 따라 admin권한이 필요할 수도 있다.

Local path에 있는 EEE 디렉토리로 link를 만든다.

마지막으로 subst 명령어를 이용해서 Local에 만든 가짜 directory를 D:로 연결한다. 이때는 admin 권한으로 실행하면 안된다. 일반 권한으로 다음을 수행하자.

subst의 두번째 인자는 처음에 만든 가짜 디렉토리에 따라 필요한 경우 디렉토리명을 적어도 된다. 이제 d:로 이동해 보면 PDB와 동일하게 D:\AAA\BBB\CCC\DDD\EEE 경로가 유효한 것을 볼 수 있고, WinDbg에서 source loading도 제대로 동작한다.

 

해제

subst는 system을 reboot하면 해제된다. 필요한 경우 /d option으로 해제할 수 있다.