포스트464 [Linux] tar: Ignoring unknown extended header keyword 에러 해결 리눅스 환경에서 타르볼(*.tar.gz) 파일을 풀어야 할 일이 있었다. tar xzvf 명령을 이용해서 타르볼을 풀었는데 다음 에러 메시지가 터미널 창을 가득 채웠다. tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance' tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.provenance' 타르볼을 풀어서 수행하던 작업이 제대로 끝나지 않아서 저 에러가 뭔지 찾아봤다. .. 2023. 3. 21. AppleSilicon 맥에서 protobuf-2.5.0 빌드하기 #include #elif defined(GOOGLE_PROTOBUF_ARCH_ARM) #include #elif defined(GOOGLE_PROTOBUF_ARCH_AARCH64) #include #elif defined(GOOGLE_PROTOBUF_ARCH_ARM_QNX) #include #elif defined(GOOGLE_PROTOBUF_ARCH_MIPS) M1 Pro 맥 환경에서 구글 protobuf-2.5.0 바이너리를 빌드할 일이 있었다. 아쉽게도 최신 protobuf에서는 M1 Pro 같은 Arm64 환경을 지원했지만 사용해야하는 protobuf-2.5.0 버전에서는 지원하지 않아 빌드가 실패했다. 그래서 몇 가지 패치를 적용해서 빌드를 했다. 패치 내용 우선 Add Arm64 Atomic.. 2023. 3. 20. [Maven] 메이븐으로 특정 테스트 클래스 혹은 테스트 메소드만 실행하는 방법 메이븐에서 surefire 플러그인으로 빌드 중에 테스트를 실행하는 경우가 많다. surefire 플러그인은 test 라는 골만 지원하는데, 기본적으로 프로젝트에 있는 전체 테스트를 실행하게 된다. 문제는 일부 테스트가 실패했을 때, 문제를 수정하고 실패했던 테스트가 여전히 실패하고 있는지 간단하게 확인하고 싶은 경우다. 매번 전체 테스트 셋을 다 돌려보는 것은 매우 낭비이기 때문이다. 전체 테스트 수행 프로젝트의 전체 테스트를 수행하기 위해서는 test 골만 입력하면 된다. $ mvn test 하나의 테스트 클래스 수행 전체 테스트 중 하나의 테스트 클래스에 포함되어 있는 테스트들만 수행하고 싶은 경우는 다음과 같이 실행한다. $ mvn test -Dtest="TestName" test 변수에 실행하고.. 2023. 3. 18. [IntelliJ] Maven Helper 플러그인 설치 및 사용법 메이븐(Maven)은 여전히 가장 많이 사용되고 있는 빌드 시스템 중 하나다. 메이븐을 이용하여 자바 프로젝트에서 사용하는 라이브러리들을 쉽게 가져올 수 있고 프로젝트의 빌드, 테스트, 배포 등을 쉽고 직관적으로 관리할 수 있다. 하지만 메이븐 프로젝트의 가장 큰 단점은 의존성 충돌이다. 프로젝트에서 사용하는 서로 다른 두 라이브러리가 같은 라이브러리의 다른 버전을 사용할 경우 메이븐은 두 버전 중 하나만 선택해서 로드한다. 의존성 충돌(Dependency Conflict)이라는 이런 상황에 놓일 경우 운이 좋으면 두 버전이 호환되어 문제가 없겠지만, 운이 나쁘면 호환되지 않는 쪽에서 NoSuchMethodException이 발생하거나 아예 동작이 달라지는 경우도 발생한다. 메이븐 프로젝트를 관리하다보면.. 2023. 3. 17. [Mac] 맥에 Maven 설치하기 macOS에 개발환경을 세팅하고 있다. 자바 개발에 필요한 메이븐(Maven)을 설치하자. 우선 메이븐을 설치하기 위해서 Homebrew를 설치해야한다. 다음 포스트를 참고해서 Homebrew를 설치하면 된다. M1 Pro 맥북에 Git 설치하기, Homebrew 설치하기 개발용 노트북으로 M1 Pro 맥북 프로를 받았다. git을 설치해보자. 우선 git을 설치하기 위해서 맥을 위한 패키지 관리 소프트웨어인 Homebrew를 설치해야한다. 이미 설치되어 있는 경우면 Homebrew 설치 hbase.tistory.com homebrew를 설치하고 mvn을 설치하자. brew install mvn brew install을 이용해서 간단하게 메이븐을 설치할 수 있다. homebrew가 알아서 다운로드하고 잘.. 2023. 3. 16. [Mac] iTerm2 설치 및 설정 맥 운영체제에는 기본 터미널 앱이 제공된다. 터미널 앱을 이용해서 ssh 접속을 하거나 CLI 명령들을 충분히 수행할 수 있다. 하지만 맥을 사용하는 개발자들은 기본 터미널 대신 더 많은 기능을 제공하는 iTerm2 앱을 많이 사용한다. 이번 포스트에서는 iTerm2 앱을 설치하고 기본적인 설정들을 해보겠다. 1. iTerm2 설치 iTerm2는 공식홈페이지를 통해 다운로드해서 설치하거나 Homebrew 명령을 통해서 설치할 수 있다. Homebrew를 통해 설치하려면 다음 명령을 실행하면 된다. $ brew install iterm2 명령을 실행하면 % brew install iterm2 Running `brew update --auto-update`... ==> Auto-updated Homebrew.. 2023. 3. 15. [Mac] Homebrew 설치 후 'zsh: command not found: brew' 오류 해결방법 맥 운영체제에 개발환경을 세팅하는 과정에서 Homebrew를 설치하게 되었다. 원래는 정상적으로 돌아야하지만 brew install 명령을 실행하려니 다음 에러가 발생했다. $ brew install mvn zsh: command not found: brew macOS의 기본 쉘인 zsh에서 brew 명령어를 찾을 수 없다는 에러를 띄우는 것이다. macOS에 Homebrew를 설치하는 방법은 다음 포스트를 참고하자. (Link : Homebrew 설치) 이 에러는 Homebrew가 /usr/loca/* 경로가 아닌 /opt/homebrew/* 에 설정되어 있기 때문에 발생한다. PATH 환경변수에 /opt/homebrew/* 경로를 추가해주면 에러를 우회할 수 있다. zsh의 설정을 변경하자. vi ~.. 2023. 3. 14. [Linux] gzip - gz 압축하기, 압축풀기 gz 명령으로 파일을 압축하고 gz 파일의 압축을 풀어보자. gzip 설치 gzip 명령은 리눅스에 기본으로 제공되고 있다. 만약 gzip 명령이 없다면 다음 명령으로 설치하면 된다. apt install gzip gz 압축하기 gzip {압축 할 파일명} 파일을 압축하기 위해서는 gzip 명령어의 인자로 압축할 파일을 명시하면 된다. $ gzip abc.txt 수행 결과로 abc.txt 파일은 사라지고 abc.gz 파일이 생성된다. gz 파일은 여러개의 파일을 하나로 묶어서 압축하기 위해 사용하는 명령이 아니다. 여러 파일을 우선 tar 명령으로 묶은 다음 gzip 명령으로 압축하면 된다. gz 압축풀기 gzip -d {압축 파일}.gz 파일의 압축을 풀기 위해서는 gzip 명령의 -d 옵션으로 압축 .. 2023. 3. 13. Apple M1 Pro 맥북에 JDK 1.8 설치하기 M1 Pro 맥북에 개발환경을 설치했다. 자바 환경을 설치해야하는데, Oracle JDK는 라이센스 문제가 있어서 사용하지 않는 것으로 가이드되고 있어 OpenJDK를 설치하기로 했다. OpenJDK에도 여러가지 선택지가 있는데 서버환경에서 많이 사용되고 있는 AdoptOpenJDK를 사용하려고 찾아봤더니 애플 실리콘인 M1 Pro의 아키텍처인 arm 아키텍처를 지원하는 JDK는 제공되지 않는 것 같았다. 다른 OpenJDK의 경우 최신 버전은 arm 아키텍처를 지원하지만 내가 써야하는 1.8 버전은 지원되지 않는 경우가 많았다. Azul Zulu 찾아보니 Azul에서 제공하는 Zulu라는 OpenJDK가 있었다. https://www.azul.com/downloads/?package=jdk 로 접속한다.. 2023. 3. 12. 이전 1 ··· 3 4 5 6 7 8 9 ··· 52 다음