asm/types.h: No such file or directory 문제 (Yocto pseudo-native)

Yocto 빌드 중 pseudo-native의 do_compile 단계에서 이런 에러를 만날 때가 있다. gcc -c -isystem .../recipe-sysroot-native/usr/include -isystem .../recipe-sysroot-native/usr/include -m32 ... pseudo_util.c In file included from /usr/include/linux/stat.h:5, from /usr/include/bits/statx.h:31, from /usr/include/sys/stat.h:465, from…

Continue Readingasm/types.h: No such file or directory 문제 (Yocto pseudo-native)

tmux 세션 관리와 스크립팅으로 원격 작업 환경 구성하기

SSH 연결이 끊기면(노트북을 덮거나, 와이파이 끊김, VPN 타임아웃) 터미널에 붙어 있던 셸과 프로세스가 통째로 죽는다. nohup/disown으로 프로세스는 살릴 수 있어도 다시 접속해서 출력을 보거나 개입할 방법은 없다. tmux(terminal multiplexer)는 터미널…

Continue Readingtmux 세션 관리와 스크립팅으로 원격 작업 환경 구성하기

CVE 패치 적용과 Exploit 검증 자동화 — CVE-2021-3156으로 보는 4단계 파이프라인

취약점 스캐너가 "이 패키지에 CVE가 있다"고 보고하면 대개 apt upgrade 한 번으로 끝냈다고 여기기 쉽다. 하지만 패치가 실제로 설치됐는지, 그리고 그 패치가 해당 CVE의 익스플로잇 경로를 실제로 막았는지는 별개의 질문이다.…

Continue ReadingCVE 패치 적용과 Exploit 검증 자동화 — CVE-2021-3156으로 보는 4단계 파이프라인

개발자를 위한 추천 Vundle 플러그인 8가지

Vundle로 플러그인 매니저 자체는 갖췄어도, .vimrc에 아무것도 선언하지 않은 vim은 여전히 텍스트 편집기 수준을 벗어나지 못한다. 파일 탐색, git 상태 확인, 코드 자동완성, 린팅처럼 IDE에서는 당연하게 여기는 기능들은 결국 플러그인을…

Continue Reading개발자를 위한 추천 Vundle 플러그인 8가지

vim bundle

vim에서 플러그인을 쓰려면 원래는 ~/.vim/plugin, ~/.vim/autoload 같은 디렉터리 구조를 직접 이해하고, 저장소를 하나씩 git clone한 뒤 runtimepath까지 손으로 맞춰야 했다. 플러그인이 두세 개만 넘어가도 버전 관리, 업데이트, 제거 작업이 금방…

Continue Readingvim bundle

systemd 서비스 유닛 파일 작성 실전 예제

서버에서 상시 실행되는 스크립트나 데몬을 만들 때 가장 흔한 실수는 nohup ./script.sh &나 crontab의 @reboot 항목으로 급하게 띄우는 것이다. 이런 방식은 서버가 재부팅되거나 프로세스가 죽었을 때 아무도 재시작해주지 않고, 로그는…

Continue Readingsystemd 서비스 유닛 파일 작성 실전 예제

quilt 기반 패치 세트를 자동으로 Git 커밋으로 변환하는 방법

quilt로 관리하던 패치 세트를 Git 저장소로 옮길 때, 흔히 patches 디렉터리를 하나씩 quilt push로 적용하고 그때마다 git add -u, git commit을 반복하는 방법을 쓴다. 패치가 몇 개 안 되면 괜찮지만,…

Continue Readingquilt 기반 패치 세트를 자동으로 Git 커밋으로 변환하는 방법