기본 콘텐츠로 건너뛰기

라벨이 macOS인 게시물 표시

[MacOS] Terminal 에서 zsh compinit: insecure directories 문구가 발생하는 경우 대처하기

How to set compinit mode on zsh KinD (Kubernetes in Docker)로 MacOS 상에 Multi-Nodes Kubernetes Cluster를 구성 하면서 kubectl autocomplete를 설정했는데 아래와 같은 메시지가 터미널 실행 시에 계속 나타나는 문제가 발생했다. zsh compinit: insecure directories, run compaudit for list. Ignore insecure directories and continue [y] or abort compinit [n]? 정보를 찾아보니 대 부분 zsh와 관련된 소유권 문제를 많이 이야기하고 있었다. 즉, 외부의 패키지나 라이브러리 등을 설치할 떄 외부의 스크립트를 사용할 경우에 /usr/local/share 폴더의 소유권과 권한이 변경 되는 문제로 발생한다는 것이다. 상황을 확인해 보기 위해서 아래의 명령을 수행한다. $ compaudit There are insecure directories: /usr/local/share 또는 There are insecure directories: /usr/local/share/zsh/.site-functions /usr/local/share/zsh 위의 같은 결과를 확인할 수 있다. 결과를 바로 소유권 및 권한 처리를 하는 방법은 다음과 같다. # 검증 및 변경 처리 $ compaudit | xargs chmod g-w # 재 검증 $ compaudit There are insecure directories: 위의 방법이 아니라 개별적으로 처리하는 경우는 다음과 같다. /usr/local/share/zsh/.site-functions 가 나온 경우 $ cd /usr/local/share/zsh $ sudo chown -R root:root ./site_functions /usr/local/share 가 나온 경우 $ cd /usr/local/share/

[MacOS,Git] ._, .DS_Store 등 숨김파일 정리 및 .gitignore 처리하기

How to remove temporary hidden files like .DS_Store / ._xxxx Remove ._xxxx files MacOS에서 여러 작업을 하다보면 ._ 으로 시작하는 파일들이 생성된 것을 확인할 수 있다. (일반적으로 숨김 파일들이라 보이지 않는다) 이런 파일은 다양한 작업 중에 생성되는데 일반적인 상황은 다음과 같다. MacOS HDD/SDD에서 외장 HDD/SDD로 복사했을 때 MacOS에서 압축했을 때 더 많은 상황이 있을 수 있지만 결국은 다른 플랫폼 (또는 다른 FileSystem)과 혼용할 경우에 아이콘을 생성하기 위해 파일을 가져오는 과정에서 메타정보 저장용으로 자동 생성된다. 이런 파일의 생성과 제거는 다음과 같은 방법들이 존재한다. 압축하는 경우라면 다른 플랫폼에서 이런 파일들이 유지되지 않도록 COPYFILE_DISABLE 설정을 하면 된다. # 압축 명령에서 사용해서 tar가 메타 정보를 추가하지 않도록 설정 $ COPYFILE_DISABLE=1 tar -cf xxxx.tar file* 매번 이렇게 처리하는 것이 귀찮다면 아예 shell에 설정하는 것도 가능하다. # ~/.zshrc 또는 ~/.bash_profile, .... ... COPYFILE_DISABLE=1; export COPYFILE_DISABLE ... 이미 파일이 존재하는 경우라면 일괄 삭제할 수 있다. $ find ./ -name ._\* -delete Git에서 MacOS의 불필요 파일들 제외하기 위에서 설명한 것과 같이 자동 생성되는 파일들을 git 에서 제외하려면 .gitignore 파일을 사용하면 된다. git에 포함되지 않도록 제외하는 경우 # .gitignore 파일 ... # OS Generated Files # ###################### **/.DS_Store **/._* ... 이미 git에 포함된 경우 # git 정보 검색 및 삭제 $ find . -name

[GIT] macOS에서 현재 상태로 원격 저장소 재 구성하기

[Git] How to initialize remote repository 주의 아래의 정리된 명령들을 수행하면 원격 저장소의 데이터가 모두 초기화되므로 미리 백업등을 해 놓고 진행해야 한다. 가장 기본적인 방법은 새로운 Repository를 만들고 다시 remote server 연결하는 것이지만, Repository에서 많은 수의 파일을 삭제하고 현재 상태로 Repository를 재 구성(초기화)해야 할 경우도 존재한다. 여기서는 기존에 계속 사용 중이던 Remote Repository를 현재 상태로 Repository를 재 구성하는 경우를 정리한다. (전체적인 과정은 초기 git 구성하는 방식과 크게 다르지 않다) 로컬에 존재하는 프로젝트 디렉터리에서 숨겨진 .git 서브 디렉터리를 삭제한다. # .git 디렉터리 삭제 $ rm -rf ./.git git init 을 다시 수행해서 git를 초기화 한다. # git 초기화 $ git init 현재 상태로 commit 을 진행한다. # 현재 경로의 모든 파일/디렉터리들 추가 $ git add . # 추가된 정보들에 대한 커밋 $ git commit -m "<commit comment>" remote repository 를 연결한다. # remote repository 연결 $ git remote add origin <url> # 연결된 remote repository 확인 $ git remote -v 참고 만일 github의 여러 계정을 사용하는 경우는 macOS에서 여러 개의 Github.com 계정 사용하기 글에서와 같이 SSH를 사용한다면 ssh config 파일 설정 과 사용방법 을 참고해서 <url>을 맞춰줘야 한다. 현재 상태를 push 한다. $ git push --force --set-upstream origin master 참고 Branch를 새로 생성해서 push한 후에 기존 B

[GIT] macOS에서 여러 개의 Github.com 계정 사용하기

[Git] How to use multiple account of github on macOS github에 여러 개의 계정이 있고, Visual Studo Code나 터미널에서 사용하다 보면 Permission error 나 User Denied 등의 오류를 만날 수 있다. 이런 문제들을 해결하고 SSH Key를 이용해서 여러 개의 github 계정을 설정하고 사용하는 방법을 정리해 놓는다. 문제점 단일 계정만 사용할 경우라면 pull, push를 처음할 때 계정 권한을 확인하는 프롬프트가 뜨고, 계정 정보를 입력하면 키 체인 에 보관되기 때문에 다음 부터는 입력하지 않아도 정상적으로 처리가 된다. 그러나 또 하나의 계정을 더 만들어서 Repository 동기화를 하려고 하면 키 체인에 저장된 정보 때문에 이전 계정의 정보를 사용하기 때문에 계속 오류가 발생하게 된다. 해결 방법 해결 방법은 간단하다. 각 계정에 대한 SSH Key 생성하고 github에 등록해서 관리하면 각 계정별 Repository에 대한 걱정 없이 편리하게 사용할 수 있다. 우선 Remote Repository를 확인해 보도록 하자. # 현재 설정된 원격 저장소 보기 $ git remote -v # 현재 저장소 설정 조회 (저장소 루트 폴더에 .git/config 파일에 정보가 존재한다) $ git config --list 기존에 입력되어 있는 키 체인 정보 삭제 Spotlight 검색(F12) 등으로 키체인 접근 앱 실행 ![Spotlight 검색]( http://ccambo.github.io/images/content /spotlight_key_chain_access.png?featherlight=false) 키체인 접근 앱에서 로그인 을 선택하고 github.com 을 찾아서 삭제 참고 macOS는 SSH 키들을 ~/.ssh 디렉터리에 관리한다. 이후 작업은 모두 이 경로에서 처리하는 것을 기준으로 한다. github는 계정

[macOS - SSH] macOS에서 SSH를 이용해서 Ubuntu 서버에 접속하기

Access to remote server using ssh key with iterm2 환경 Mac OS ssh-keygen (SSH에 사용할 키 발급) ssh-copy-id (발급된 공개키를 서버에 전송) 원격 서버 (Ubuntu 16.04) 및 사용자 서버에 사용자가 추가되어 있다고 가정한다. 사용자 추가에 대한 부분은 많은 자료들이 존재하므로 참고하도록 한다. ssh-copy-id 설치 ssh-copy-id 는 로컬에서 발급된 공개키를 서버로 전송할 때 사용하는 패키지다. $ brew install ssh-copy-id SSH Key 발급 ~/.ssh 폴더를 기준으로 한다. # ssh-keygen [-t] [rsa] [-b] [2048] # -t : dsa, ecdsa, ed25519, rsa, rsa1 중에 어떤 암호화 알고리즘을 선택할지 지정 (기본 값, rsa) # -b : key를 생성할 때 bit 수 지정 (기본 값, 2048) $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/<현재 사용자>/.ssh/id_rsa): <<< 여기에 저장될 파일 경로 또는 파일명 입력 Enter passphrase (empty for no passphrase): <<< 비밀번호로 사용할 값 Enter same passphrase again: <<< 다시 입력 Your identification has been saved in <파일명> Your public key has been saved in <파일명>.pub. 키 파일에 대한 권한 문제 ssh-key을 통해서 처리한 경우는 문제가 되지 않을 수 있지만 수동으로 처리한 경우는 다음과 같이 파일 권한을 설정해 줘야 한다. 공개 키 : 0644 (-rw-r--r--) 개인 키

[macOS] oh-my-zsh 설치 및 Iterm2 설정

Set up Item2 terminal with oh-my-zsh on Mac 별다른 수정이 없었다면 기본 터미널 쉘은 `bash(Bourne Again Shell) 일 것이다. $ echo $0 -bash 아마 맥북 최신 OS 상태라면 zsh 로 나올 것이다. (macOS 10.15 Catalina 부터 GPL v3 라이센스 제한) 필수 준비 항목들 Homebrew 설치 : Mac OS 용 패키지 관리자 $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 또는 $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 설치 후에는 다음과 같이 패키지 명을 지정해서 다른 패키지들을 설치할 수 있다. $ brew install [package-name] zsh : bash를 확장한 쉘로 Mac은 bash 기반으로 zsh도 같이 설치되어 있다. $ brew install zsh $ which zsh /usr/local/bin/zsh $ chsh -s $(which zsh) Item2 : Mac OS의 Terminal emulator, 다운로드해서 설치 Oh-my-zsh 설치 및 설정 터미널을 쉽게 사용할 수 있도록 ZSH 를 확장하는 오프소스 프로그램으로 커뮤니티가 활발하게 형성되어 있다. # curl을 이용한 설치 $ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # wget을 이용한 설치 $ brew install wget $ sh -c "$(wget -O- https://raw.gith

[macOS, Git] Mac Book에 Git 설치하기

Mac북에 Git 설치하기 패키지를 이용한 설치 [https://git-scm.com/download/mac](https://git-scm.com/download/mac) 접속 git-x.x.x-xxx.dmg 다운로드 다운로드 받은 파일 실행 Homebrew를 이용한 설치 Home-brew 가 미 설치 상태라면 참고해서 설치를 하도록 한다. $ brew install git 설치 확인 설치 여부는 아래의 명령을 통해서 확인 가능하다. # 설치 버전 확인 $ git --version git version 1.7.10.3 # 설치 경로 확인 $ which git /usr/local/git/bin/git 결론 두 가지 모두 설치는 가능하지만 맥북이라면 나중에 설치를 삭제하거나 업그레이드 등의 관리가 편하므로 Homebrew를 이용해서 설치하는 것이 좋다. 참고 정보 맥OS Git 설치 - 제타위키 Homebrew - 제타위키