맥 OS X

델리마운트 위키

애플 맥의 운영체제

목차

MacPorts

MacPorts는 맥 운영체제에서 사용할 수 있는 패키지 관리 툴 입니다. 기본적으로 맥 OS X의 시스템 업데이트 기능이 시스템을 업데이트 하지만, Subversion과 같은 서드파티 툴들의 관리를 위해서는 MacPorts를 사용하는 것이 편리합니다. MacPorts는 바이너리 패키지 배포가 아닌 소스 기반 배포 방식을 취합니다. 때문에 설치에 상당한 시간이 걸리기도 하지만, 설치되는 컴퓨터 환경에서 빌드되기 때문에 성능적인 이점과 호환성 측면을 기대할 수 있을 것 같습니다. 만약 바이너리 패키지 관리 툴을 원할 경우, Fink 라는 툴도 있다고 합니다.

  • Installing MacPorts 맥 OS X 스노우 레오파드 기준으로 Xcode 설치 후 Snow Leopard 링크의 파일을 받아 설치하면 됩니다.
  • 설치 중 가끔씩 오류가 발생하거나 죽는 경우가 발생하는 듯. 죽으면 강제 종료 후 다시 실행하면 됩니다.
  • MacPorts Guide


Ruby 1.9.2 버전 설치

sudo port install ruby19

설치 중... 완료되면 내용 정리할 것 => 설치는 되었으나, 실행을 ruby1.9 로 하게 되며, RVM(Ruby Version Manager)을 사용하는 것이 권장되는 듯 하여 재조사중

RVM을 통한 설치

git-core, curl, xcode 3.2.1(이상) 설치되어 있어야 한다. Installing Git with macports

  • RVM 설치
sudo bash < <(curl -B http://rvm.beginrescueend.com/install/rvm)
  • .rvmrc 파일 확인
vim ~/.rvmrc

내용이 아래와 같은지 확인, 다르다면 수정해줍니다. (생략 가능한 듯)

export rvm_path="/usr/local/rvm"
  • .profile 수정
vim ~/.profile

마지막 줄에 다음의 내용을 추가해줍니다.

[[ -s "/usr/local/rvm/scripts/rvm" ]] && . "/usr/local/rvm/scripts/rvm"  # Load RVM into a shell session *as a function*
  • 사용자 그룹 추가

일반 Mac OS X에서 user group 설정하기 링크를 참고하여, rvm을 사용할 사용자들은 rvm 그룹에 추가해줍니다

  • 쉘 종료 후 재실행

sudo로 실행하지 말 것!! (혹시, 권한 없다고 나오면 위에 rvm 그룹에 지금 계정 추가할 것)

rvm install 1.9.2
rvm install 1.8.7
rvm --default use 1.9.2
ruby --version

Rails 설치

sudo하지 말 것!! (ruby 1.9.2와 rails 3.0.5 기준)

$ gem update --system 1.6.2
$ gem install rails

gem 1.7.1 설치하면 rails 설치 안 됩니다. 만약 설치했다면 아래 명령어로 gem 다운 그레이드해야 합니다.

$ gem update --system 1.6.2

Rails 설치

맥은 스노우 레오파드(10.6.6) 기준으로 Ruby 1.8.7 버전과 Rails 2.3.5 버전이 설치되어있습니다.

sudo gem update --system
sudo gem install rails -v=2.3.8

action_mailer_tls

sudo gem install action_mailer_tls

ImageMagick

PostgreSQL 설치

원클릭 인스톨러와 패키지 방식이 존재하는데, 패키지 툴을 따로 설치해야 하므로 인스톨러를 이용하는 쪽으로 설명하겠습니다. 인스톨러는 특별한 점 없이 일반적인 인스톨러들처럼 위자드 형식을 띄고 있으므로 내용은 일단 생략합니다. 단, PostgreSQL이 내부적으로 Shared Memory를 대량으로 사용하도록 구현되어있어서, 맥의 커널 설정이 필요하다고 합니다. 커널 설정은 인스톨러 설치 전에 작업하도록 합니다. 커널 설정이기 때문에 설정을 마친 후 재부팅이 필요합니다.

Managing Kernel Resources 요약하면, Shared Memory와 Semaphores 기능은 현대의 대부분의 OS가 구현하고 있으나, 기능이 꺼져있거나 기본으로 충분한 양의 메모리를 확보해주지 않아 문제가 될 수 있다고 합니다. 윈도우즈 환경의 경우, 위 기능을 PostgreSQL에서 직접 구현하고 있다고 하는군요. 맥 OS X의 경우에는 OS 기본 설정이 충분한 양의 메모리를 확보해주지 않아 커널 설정이 필요합니다. 커널 설정을 하더라도 그만큼의 메모리를 OS가 미리 잡아두는 것이 아니고 필요에 의해 사용되기 때문에 대용량을 할당해도 문제되지 않는다고 합니다.

현재 시스템의 설정 상황을 알고 싶으면 다음과 같이 입력하면 알 수 있습니다.

sysctl -a | grep kern.sysv.sh

특별히 설정하지 않았다면, 아마도 다음과 비슷한 내용을 볼 수 있을 것입니다.

kern.sysv.shmmax=4194304
kern.sysv.shmmin=1
kern.sysv.shmmni=32
kern.sysv.shmseg=8
kern.sysv.shmall=1024

값을 설정하기 위해서 설정 파일을 작성합니다. 파일이 없다면 새로 생성합니다.

sudo vim /etc/sysctl.conf

다음과 같이 설정하였습니다

kern.sysv.shmmax=268435456
kern.sysv.shmall=262144
kern.sysv.shmmin=1
kern.sysv.shmmni=32
kern.sysv.shmseg=8

맥 OS의 버전에 따라서는, 설정 파일 내에 5가지 값이 모두 있어야만 적용되는 경우가 있다고 하여, 고민하지 않고 모두 기입하였습니다.

값을 변경할 것은 shmmax 값과 shmall 값입니다.

shmmax 값이 제일 중요한데, bytes로 입력하며, 4096의 배수가 되도록 합니다. 정확히 어느정도나 잡아야 할 지는 찾지 못하였으며 일단 256MB를 잡았습니다.

shmall 값은 shmall * 4096 >= shmmax 를 만족하도록 하는 4096의 배수로 합니다.

값을 얼마나 잡을 것인지에 대한 가이드라인은 찾지 못하였습니다. 맥은 현재 개발용으로 사용되므로 가이드라인을 찾기 전까지는 구동에 문제가 없는 선에서 경험적으로 값을 조정해가며 사용해보는 것이 좋겠습니다.

값을 입력하고나면 파일을 저장한 후 시스템을 재부팅합니다. 재부팅을 완료한 후에 설정값이 적용되었는지 확인해줍니다.

sysctl -a | grep kern.sysv.sh

제대로 적용되었다면 이제 PostgreSQL을 설치해주면 됩니다.

설치를 마친 후, postgres 계정 활성화

sudo su - postgres
/Library/PostgreSQL/9.0/bin/psql template1
alter user postgres with password 'your_password_here';

참고 - PostgreSQL 설치및 기본 사용법

  • 이후에 다듬어서 정리할 것

PATH 추가

sudo vim /etc/paths

맨 밑에 아래 내용 추가후 저장

/Library/PostgreSQL/9.0/bin

터미널 종료 후 다시 실행. 확인차 아래 명령 실행

echo $PATH

MacPort로 설치하기

레일스 PostgreSQL 어뎁터 설치

  • PATH 추가 한 후

sudo gem install pg

PostgreSQL 제거

Finder로 설치된 경로 /Library/PostgreSQL/9.0/ 에 이동하면 Uninstall PostgreSQL 프로그램을 실행하여 제거할 수 있습니다.


SVN 클라이언트


알아볼 것

  1. 맥북 키보드 insert 키 없는 문제 대응 조사 (대체 단축키)


유용한 앱

  • 카페인 (Caffein) - 간단한 전력관리 툴로 손쉽게 개발중 화면 어두워지지 않도록 방지해서 집중하기 쉽도록 해줌


맥 OS X 관리

PATH 설정

sudo vim /etc/paths

경로를 한줄씩 입력한 후 저장, 이후 터미널을 재실행하면 반영됨

맥 파티션의 대/소 문자 구분 문제

맥의 OS X은 HFS+ 라는 파일시스템을 사용합니다. 시스템을 설치하면서 이 파일시스템을 설정할 수 있는데, 대/소문자를 구분짓는 여부도 설정에 따라 달라지게 됩니다. 만약 대/소문자 구분을 짓지 않는 경우 hello 파일과 Hello 파일이 동일하게 취급되어 같은 디렉터리에 존재할 수 없게 되는데, 전통적으로 구분짓지 않고 사용되어왔기 때문에 구분짓는 설정으로 설치하게 될 경우 다수의 애플리케이션과 문제가 생길 수도 있다고 합니다. 그렇지만 유닉스(리눅스) 시스템에서는 대/소문자를 구분짓기 때문에 이런 시스템과 상호작용하는 호환성에 문제가 생길 수 있게 됩니다. 현재 이 문서를 작성하는 이유도 리눅스 시스템으로 구성된 Subversion 서버와 작업하는데 문제가 생겼기 때문입니다. 파일시스템을 설정하여 문제를 해결하기에는 어느 방법이든 문제를 가지고 있어, 파일시스템은 전통적인 맥에서 사용되었다고 하는 대/소문자 구분 없음으로 하되, 다른 시스템과 상호작용을 위한 별도의 공간을 사용하는 방법을 설명하도록 하겠습니다. 우선, 파티션을 나누어 시스템 파티션은 대/소문자 구분 없음에 두고, 작업용 파티션을 따로 사용하는 방법이 있을 수 있습니다. 하지만 작업용 파티션을 얼마나 할당해서 사용할 것인지 고민이 생기게 되며, 한번 할당하고 나면 변경이 어렵기 때문에 유연성이 떨어지게 됩니다. 이를 보완하여 많이 사용되는 것이 DMG 이미지를 사용하는 방법이라고 합니다. 맥 시스템은 DMG 이미지 파일을 마운트하여 파일시스템처럼 사용할 수 있기 때문에 이를 활용하면 유연하게 별도의 작업공간을 가질 수 있다고 합니다. 방법은 다음과 같습니다.

  1. Spotlight(맥 화면의 우측 상단 돋보기 표시)에서 디스크 유틸리티를 검색해 실행
  2. 좌측의 선택목록에서 아무것도 선택하지 않은 상태 (빈 공간 클릭)에서 상단의 새로운 이미지 클릭
  3. 별도 저장: 부분에 DMG 이미지가 저장될 위치를 지정 (UI를 통해 디렉터리 경로를 정하고, 텍스트 입력란에 파일명을 확장자를 제외하고 기입합니다.)
  4. 이름:에 적절한 이름 지정 (파인더에서 보여지는 이름입니다. 마운트된 이미지 경로에 사용됩니다.)
  5. 크기:에 적당한 크기 지정 (변경이 불가능하기 때문에 충분한 공간을 생각해야 합니다. 다만 이미지 파일을 여러개 사용할 수 있기 때문에 너무 크게 잡을 필요는 없겠습니다.)
  6. 포멧:Mac OS 확장(대소문자 구분, 저널링)을 선택
  7. 암호화:는 속도를 위해서 없음을 선택합니다. (암호화를 선택할 수 있겠지만, 이미지 파일이 유출되기 위해서 시스템 해킹이 선행되야 할테니 보안적인 이점이 별로 없어보입니다. 시스템을 점령당한 상황에서는 이미 이미지 내용을 확인할 수 있을 것이기 때문에)
  8. 파티션:단일 파티션 - Apple 파티션 맵을 선택합니다. (파티션을 나눌 필요는 없어보입니다. 별도의 파티션을 만들기보다는 이미지를 하나 더 만들어 마운트 하면 되기 때문입니다.)
  9. 포멧:읽기/쓰기 디스크 이미지를 선택합니다.
  10. 생성을 클릭하여 생성 후 마운트합니다.

마운트된 이미지는 /Volumes/이미지 이름으로 접근할 수 있습니다. Workspace 라는 이미지를 마운트 했다면, /Volumes/Workspace에서 대/소문자 구분이 잘 되는지 확인해봅니다.

cd /Volumes/Workspace
echo hello > hello.txt
echo Hello > Hello.txt
ls *ello.txt

이제 마운트된 이미지 파일시스템에 hello.txt 파일과 Hello.txt 파일이 공존하는 것을 볼 수 있을 것입니다.

로그인시 DMG 이미지 자동 마운트

맥 시스템의 Automator를 활용하여 로그인시 DMG 이미지를 자동으로 마운트 할 수 있습니다.

  1. Spotlight(맥 화면의 우측 상단 돋보기 표시)에서 Automator를 검색해 실행
  2. 작업흐름에 대한 템플릿을 선택하십시오.에서 작업흐름을 선택
  3. 좌측에서 동작 탭의 보관함 > 파일 및 폴더디스크 이미지 마운트를 드래그하여 우측의 동작 또는 파일을 여기로 드래그하여 작업흐름을 구축하십시오.에 놓기
  4. 마찬가지로 파일 및 폴더지정된 Finder 항목 가져오기를 드래그하여 우측의 디스크 이미지 마운트보다 상단에 위치하도록 놓기
  5. 우측에 추가된 지정된 Finder 항목 가져오기 동작에서 추가... 버튼을 눌러 자동으로 마운트 하고자 하는 DMG 이미지의 경로를 선택 후 추가를 클릭
  6. 우측 상단의 실행 버튼을 클릭해 제대로 이미지가 마운트 되는지 확인
  7. 메뉴의 파일 > 별도 저장...을 클릭한 후, 대화상자 하단의 파일 포멧:응용 프로그램으로 하여 적당한 위치에 저장
  8. 메뉴의 애플 > 시스템 환경설정... > 계정 실행
  9. 로그인하는 계정을 선택한 후, 우측의 로그인 항목 탭 선택 후, + 버튼을 클릭
  10. 적당한 위치에 저장했던 Automator 응용 프로그램을 선택
  11. 추가된 Automator 응용 프로그램의 가리기 항목에 체크

맥 OS X 데스크탑의 그룹 관리

개인 도구