'맥킨토시'에 해당되는 글 5건

OWC Mercury Extreme Pro 6G라는 SSD를 하나 구입했다. 240GB이고 이름에 적힌대로 6Gbps를 지원하는 SATA3 제품이다.

한국에서 OWC를 아는 분들은 일부 맥 유저들 뿐이지만, 미국에서는 꽤 유명한 업체이다. 주로 맥용 주변기기나 부품들을 판매하는 업체인데, 자신이 사용하는 맥이나 맥북에 어떤 램/하드디스크 등이 인식되는지 잘 모르는 경우가 많기 때문에 OWC에서는 그러한 유저들을 위해 맥에서 인식이 잘되는 부품의 리스트를 나열하고 그것들을 판매하는 형태의 웹사이트였다.

그런데 이 OWC에서 램부터 시작하여 하나둘씩 자체적으로 부품을 제조하면서 맥유저들 사이에서 점점 입지를 자리잡아가고 있었는데, SSD에서 대박을 하나 터뜨렸다. 내가 구입한 이 모델이 현존하는 전 세계에서 가장 빠른 SSD라고 한다. 읽기쓰기 550 MB/s라는 어마어마한 속도에 프리징 현상도 없고 5년이라는 제품보증 기간과 TRIM이 필요없는 뛰어난 성능의 GC가 장착된 컨트롤러는 수많은 리뷰 사이트에서 인정한 현존 최강의 SSD라는 거다. 자세한 리뷰는 구글에서 제품명으로 검색하면 한국 모 사이트에서 리뷰한 페이지가 나오는데 리뷰가 아주 잘되어있으니 참고하시고.

그놈의 속도가 뭔지, 맥미니 서버를 팔고 SSD를 주문했는데 과연 디스크와 맥미니를 바꿀만한 값어치가 있는지 정말이지 한참이나 고민했다. SSD가 진리라는 소리는 수차례 들어왔고 봐왔지만 그게 정작 쓸려니 고민이 되는 것은 사실. 내 맥북의 사양은 맥북프로 15인치 2011 모델이다.

어찌됐든 주문은 했고 물건은 왔다. 오자마자 라이언을 클린설치를 하고, 하나하나 설정하려니 너무나도 귀찮고 할 게 많아서 도저히 유혹을 뿌리칠 수 없었다. 그냥 라이브러리 통째로 복사해버렸다. XBench라는 맥용 벤치마크 테스트를 돌리는데 이게 실행이 되다가 자꾸 멈추는 거다. 알고보니 만들어진지 오래된 프로그램이라 라이언에서는 더 이상 호환이 안된다. 따라서, XBench 실행시 디스크 테스트만 돌리도록 하자.

XBench

돌리고나니 이럴수가… 쓰기속도가 반 밖에 안나오는 것이다. 다시 말하면, 읽기성능은 그런대로 500메가 이상 나오는데, 쓰기성능이 200메가 정도 밖에 안나오는 것이다. 슬슬 짜증이 나기 시작했다. 분명 모 리뷰 사이트에서는 스펙 검증을 했을 때 제조사가 제시한 스펙대로 충분히 나왔고, 일부 항목에서는 스펙을 뛰어넘는 성능을 보여줬다고 했는데...

Ssd speedtest

 

OWC기술지원쪽이랑 약 1주일간 메일을 주고받았고 제품을 교환받기로 했다. OWC에는 Advanced Cross-Shipping 이라는, 물건을 먼저 보내주는 대신 해당 액수만큼을 신용카드에서 Hold해놓는 편리한 제도가 있어서 일단 물건부터 수령받았다.

UPS 2day Air로 와서 다다음날 바로 받았다. 뜯어서 연결하고 라이언을 클린설치했다. 그리고나서 바로 QuickBench를 돌리니 쓰기에서 초당 400메가 이상이 나왔다. 일단 예전 제품보다 2배 이상이 나왔으니 제 성능이 나왔다고 판단, 이제 이것저것 원래 쓰던 프로그램 등 이전의 상황을 복구했다. 대략 4시간 정도 걸린 것 같다. 귀차니즘으로 인해 Library 폴더를 갖다붙이고 싶은 마음이 간절했으니, 이전부터 클린설치 한 번 할려고 벼르고 있었던 터라 꾹 참고 하나하나 다 설정해줬다.

주변 지인들한테 늘상 하는 얘긴데, 맥은 사용자랑 착 달라붙는 경향이 있어서 모든 자료를 맥에 넣어놓는 습성이 있고 따라서 내 맥의 자료는 아주아주 중요했다. 개인적인 정보부터 시작해서 별게 다 있었으니. FileVault2 역시 나에겐 필수다. 나중에 하면 시간이 오래 걸리니, 벤치마크를 끝내자마자 바로 해놨다.

모든 복구가 끝나고나니 벤치마크 결과가 또 다시 궁금해서 한 번 더 돌려봤다. 그런데, 성능이 또 다시 반으로 줄었다. 분명 뭔가 있다...

 

이게 뭐가 문제인지 하나하나 찾아내려니 시간이 안되고, 꾹 참고 쓸려니 내가 이노무 속도 때문에 일부러 비싼 모델을 산게 아까웠고해서 웹서핑을 좀 해봤다. 힌트를 찾았다!

http://blog.macsales.com/11051-to-trim-or-not-to-trim-owc-has-the-answer

 

리플들을 읽다보니 "File Vault 2를 쓰는데 쓰기 속도가 너무 느리다"라는 리플이 발견된 것이다. 순간 눈 앞에서 불이 번쩍했다. 그렇다면, 처음 구매해서 받은 제품 역시 정상이었던가...

리플들을 계속 읽어내려가다보니 이 제품은 File Vault 2와 사용시 쓰기성능이 반으로 줄어든다는 결과가 있었다는 리플들이다. 아니, OWC Tech Support 직원은 이 사실을 알면서도 나한테 File Vault 2 쓰는지 물어보지도 않았단 말인가?

File Vault 2를 해제했고 퀵벤치를 돌렸다. 쓰기성능이 400메가 이상 나온다. 제길, 이거 알았으면 교환신청을 하고 계좌를 홀드하고 메일을 주고받고 이딴 짓은 안했을 거 아냐! 설마 그럴리는 없겠지만, UPS 반송 잘못되서 OWC에서 물건 못받았다고 내 계좌에서 돈 빼가면 진짜 골치아파지는거다...

SSD

드디어 시작된 진정한 SSD Life 고고씽~

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
새로운 맥 OS X이 나왔다. 고양이과 최상위에 있는 동물, 사자님이시다.
고양이과 맹수들은 이제 나올만한 애들 다 나왔으니, 맥 오에스 '텐'은 10.7로 마지막이 되지않을까 싶다.
설마 Mac OS X Cat이 나오진 않겠지.

사용기, 리뷰, 달라진 점은 이미 수많은 유저들에 의해서 포스팅되고 있으니 난 서버에 대해서만 얘기하련다.
라이언 서버는 세팅방법이나 절차 등이 너무너무 간단해서, 내가 그동안 이 블로그에 축적해온 스노우 레퍼드 서버 세팅방법 (http://jswlinux.tistory.com/entry/Mac-OS-X-Snow-Leopard-사용노트)이 쓸모없어지게 될 정도다.
대부분의 서비스가 On / Off 버튼 외에 별로 건드릴 게 없다. 정확히 말하자면, 건드릴 수 있는 게 없다. 있다면 비밀번호 입력 정도?
서버데몬의 세팅의 심플함이 어디까지 가능한지 보여주는 극강의 "제어판"을 보여주는데, 세세한 세팅과 디테일한 커스터마이징을 좋아하는 유저라면 아주 답답하겠지만, 나같이 차려진 밥상에만 만족하는 유저들에게는 더 이상의 삽질이 필요없는 "가전제품"이 되었다.

일부 스크린샷을 올려본다. 보시다시피 건드릴 수 있는 게 거의 없다.
 






 
블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
나는 맥빠다. 누차 내 블로그에 언급했지만 나는 맥을 사랑하는 맥빠다. 하지만 애플빠는 아니다.
애플빠와 맥빠는 분명 다르다. 다르다고 생각한다. 애플빠는, 애플에서 나오는 모든 제품을 열렬히 찬양하는 사람이라고 볼 수 있는 반면, 나는 오로지 MacOSX 하나만을 열렬히 사랑하는 맥빠다.
그럼에도 불구하고 애플에서 나오는 제품 다수를 갖고있다. ㅎㅎㅎ

뭐가 있는지 나열 좀 해볼까.
아이팟 나노, 아이팟 클래식
아이폰 2G 2대
2007년형 신형 아이맥 20"
2010년도 신형 맥미니서버
에어포트 익스트림 베이스 스테이션
매직 마우스

아이패드는 2달 후에 사기로 결정했다. 나보다는 와이프가 쓰고싶어하는 것이라서 구매하기로 했으면 분명 살 거다. 그러고보니 없는 것도 많네.
맥프로, 맥북, 맥북프로, 맥북에어, 아이팟터치, 아이팟 셔플, 시네마 디스플레이가 없다.
아이팟터치, 아이팟 셔플은 내가 가진 아이팟 클래식/나노와 아이폰에서 커버가 가능하니까 앞으로도 안살 것 같고, 맥북에어/맥북/맥북프로 중에서는 하나만 있으면 될 것 같고, 맥프로와 시네마디스플레이는 향후 5년 이내에 구매하는 걸로 목표를 세웠으니 이것도 언젠가는 살 것 같고...
본론으로 넘어가자.

맥은 엄연히 유닉스다. 인텔 맥에서 돌아가는 레퍼드부터 Single UNIX Specification, SUS에서 인증된 Open Brand Unix 03에 준하는 유닉스다. 그런데 리눅스만이 최고이고 리눅스만이 진리이신 분들이 그걸 용납하질 못하시겠단다. 참고로 나도 리눅스 빠라고 할 수 있는 사람이다.
리눅서들이 뭐라고 했을까?

s: 독특하군요. 애플이랑 유닉스랑 관련도 없는데 ㅎㅎ
e: 유닉스 기반이어서 그러지 않을까요? ㅎ
s: bsd 기반이지
e: FreeBSD
s: 유닉스는 아니라는
e: FreeBSD도 유닉스 기반이니.. 뭐..
s: 유닉스는 아니죠
e: 그러니까 기반..
나: 맥은 유닉스인데요...
s: 누가 맥이 유닉스레요?
나: 링크를 드리죠.
나: http://ko.wikipedia.org/wiki/단일_유닉스_규격
s: 저 자료는.. 애매하네요.
나: 애매하시면 unix.org에 항의를...
s: 인증 받은거라고 하니
s: 유닉스도 아닌 것이 유닉스인양
s: 인증 받으면 다 유닉스인가 보네
s: 좀 웃긴 거긴하네
s: bsd 가져와서 포팅한건데
s: bsd는 아니고 자기는 인증해서 유닉스라!
b: 유닉스 커널 쓴다고 유닉스라고 보긴 힘들텐데
b: 한때 POSIX로 유닉스 구분하던 사람들도 있었는데 그러면 윈도우도 유닉스라죠.

이 대화에서 아무런 대답이나 항의 등은 하지 않았다. 온라인에서 말싸움 하는 게 귀찮을 뿐더러 그럴 시간도 없고 어차피 되도않하는 말싸움 해봤자 시간만 아까울 뿐이고...
먼저, 내가 알기로 윈도우 2000은 한때 POSIX를 준수하던 시절이 있었다. 물론 XP부터는 아니라고들 한다.

이 대화에서 내가 하고싶은 말은, 맥이라고는 어떻게 생겨먹은지 인터넷으로 밖에 본 적이 없는 인간들이 어떻게든 맥을 까고싶어서 안달이 났거나, 지들이 쓰는 OS가 얼마나 잘났는지 지들이 만든 것도 아니면서 왜 그렇게 남이 쓰는 걸 못까서 난리인 건지 이해가 안간다는 말이다.

맥이 유닉스 인증을 받았건 안받았건 간에 내가 하고픈 말은, 지들이 아니라고 생각하면 아닌 거야? unix.org는 폼으로 있는 단체인가? POSIX는 동네 슈퍼 이름이야? 그렇게 할 말이 많고 지들이 맞다고 생각하면 직접 따지지, 왜 irc에 처박혀있는데? 
인증 받으면 다 유닉스인가 보네 <- 그럼 자네가 인정해야 유닉스인가? 대체 인증을 누가 해야하는데? 국제기관에서 인증해도 인정 못하겠다굽쇼? 
레퍼드가 단일유닉스규격 받은 게 말이 안된다고 생각하면 왜 unix.org에 항의메일 안보내는데? 영어가 딸려서? 중학교 때부터 대학교 졸업할 때까지 뭐했는데?
맥서버는 리눅스 서버랑 비교하자면 뭐 전혀 고려할만한 가치가 없는 쓰레기라고 하는데, 누가 맥서버로 사업하겠대? 웹호스팅 하겠대? 집에서 홈서버로 쓰겠다는데 무슨 쓰레기니 가치가 없다느니 말들만 많은지...

멍석 깔아주면 한 마디도 못하는 게 한국사람이란 거 다들 잘 알고있는 사실이지만, 국제기관에서 인정해준 사실이 지들 앞에서는 다 말도 안되는 헛소리고 이해가 안되는 상식 밖의 일이라는 거다. 물론 국제기관에서 인정하는 것들이 100% 정확한 게 아니고, 또한 기관의 결정이 진리가 아니라는 것 역시 모를만큼 바보는 아니다. 하지만, 어디까지나 나름대로 국제적인 표준을 심의/규정하는 기관이고 전 세계적으로 인정하는 사항이니만큼 결정이야 어쨌든 따라야하는 게 상식 아닌가?

축구에서는 오심이 한 번씩 생기는데, 대부분의 선수들은 이렇게 말한다.
"심판의 판정도 경기의 한 부분이라고 생각합니다"

이 블로그에서 내가 맥빠라는 사실은 누구나 쉽게 알 수 있을만큼 맥에 대한 찬양을 많이하고있는 본인이지만, 그만큼 리눅스도 좋아한다. 이 블로그에 몇 번이나 얘기했지만 나는 예전 한컴리눅스 사로부터 "대한민국 리눅스 발전에 기여한 20인"에 선정된 적이 있을 정도로 리눅스 활성화에 열렬한 사용자였다. 현재 인천 리눅스 동호회 운영진이며 한국 우분투 포럼 운영진이고 동시에 우분투 커뮤니티 공인 한국 컨택터이다. 또한, 한국 우분투 포럼 IRC의 방장이기도 하다. 
나는 오로지 블로그를 통해 내 생각을 말하는 것 외에는 결코 주위 사람들에게 맥이 최고다라고 말하지 않으며, 리눅스를 쓰지 말라느니 하는 말 따위는 하지 않는다. 게다가 리눅스가 단일유닉스규격에 맞지않는 OS라고 해서 리눅스가 유닉스가 아니라는 생각도 결코 해본 적이 없다.

최근에는 리눅스 유저들이 더 꽉 막힌듯한 사고방식을 보이는 사람들이 많아졌다. 서버관리하는 분들이 그런 생각 많이 하시던데, 맥서버가 서버로서 최고이고 적격이며 아주 우수한 플랫폼이라고 얘기하는 게 아니다. 단지 맥이 단일유닉스규격을 준수하는 유닉스라고 하니까 그냥 그런갑다 하는 거지, 왜 그걸잡고 비아냥거리면서 기관에서 승인받은 사실조차 지네들이 인정하네마네 하냐는 거다.

 말이 나온 김에 자격증 얘기 좀 해보자.
이러한 한국의 사회가 자격증 소지자를 무시하게 되는 거다. 일례로, 새로 들어온 신입사원이 리눅스 마스터 자격증이 있다고 치자. 뭐라고 할 건가? 대부분 이렇게 답할 거라 생각한다. 
"그거 있으면 뭐해?"
"그래서 니가 나보다 더 많이 알아?"

후자의 경우, 물론 아무리 자격증이 있다고 해도 경험에서 나오는 실력이 절대적으로 우위라는 건 부정할 수 없는 진리다. 그런데 전자처럼 자격증을 있으나마나하는 식으로 대접하다보니 결국은 이 사람이 객관적인 평가에서 합격을 했다는 일종의 자격이 아무 쓸모없는 휴지조각이 되어버리는 거다. 아마 우리나라 서버관리자들, 자격증 있으신 분들 별로 없을 거다. 물론 그런 거야 따라면 당장이라도 딸 수 있으실테고, 오히려 자격증에서 요구하는 것 이상의 실력을 갖고계실 거다. 

말을 하다보니 열받아서 횡설수설하게 됐는데, 정리한다.
본인, 불과 3-4년 전만해도 리눅스 밖에 모르는 리눅스 빠돌이였다. 96년도부터 리눅스 써왔고 나름 리눅스를 발전시키기 위해서 혼자라도 많이 노력해왔다.
지금은 맥 쓴다. 맥 정말 사랑한다. 좋은 건 나만 쓰고싶기에, 주위 분들 맥 쓰라고 권유하지 않는다. 하고싶지도 않다.
나도 리눅스 써왔고 지금도 리눅스 쓴다. 여전히 리눅스 좋아하고 여전히 리눅스의 발전을 위해서 대외적으로 노력하고 있다.

맥 까는 분들, 맥 까건 말건 내가 알 바는 아니라서 별로 상관 안한다.
그런데, 맥에 대해서 뭔가 마음에 안드는 게 있으면 나같은 유저들한테 말하지 말고 직접 나서서 얘기 좀 해달라. 맥이 단일유닉스규격 인증받은 게 마음에 안들면 unix.org가서 좀 따져달라. 윈도우 2000이 POSIX인 게 말이 안된다고 생각하면, POSIX에 직접 메일 보내서 따져라. 리눅스랑 비교해서 맥서버 쓰레기라고 하시는 분들, 뭐라고 하던 별로 상관없지만 맥 써보긴 했나? /etc 어떻게 생겼는지 구경은 해봤나?
못하겠으면, 어느정도 수용하고 인정할 줄 아는 자세를 갖춰라.

잘 알지도 못하면서 까는 것도 모자라, 그렇다고 지들이 생(착)각하는 게 진리인양 우기지 말자. 짜증난다.
블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
수시로 업데이트함. 절대 불펌 금지

일반
일반 어플리케이션에서의 Home/End키 바인딩 (재부팅 불필요)
vi ~/Library/KeyBindings/DefaultKeyBinding.dict
{
/* home */
"\UF729" = "moveToBeginningOfLine:";
"$\UF729" = "moveToBeginningOfLineAndModifySelection:";

/* end */
"\UF72B" = "moveToEndOfLine:";
"$\UF72B" = "moveToEndOfLineAndModifySelection:";

/* page up/down */
"\UF72C" = "pageUp:";
"\UF72D" = "pageDown:";
}

VMware Fusion의 Disk IO로 인한 시스템 부하 해결
자주 안쓴다면 VMware 데몬을 꺼준다.
sudo vi  /Library/LaunchDaemons/com.vmware.launchd.vmware.plist 
11번째 라인 <string>--start</string>을 <string>--stop</string>으로 수정
이렇게 하고나면, VMware 구동시 미리 sudo /Library/Application Support/VMware Fusion/boot.sh --start 를 실행해서 데몬을 올려야한다.
이게 귀찮을시, 데몬이 떠있는지 안떠있는지를 검사해서 안떠있으면 띄우고 VMware를 실행하는 애플스크립트를 만들어서 응용프로그램으로 컴파일한다.
set isRunning to do shell script "ps -ef | grep vmnet | grep -v grep | wc -l |sed 's/ //g'"
if isRunning is "0" then
	do shell script "/Library/Application\\ Support/VMware\\ Fusion/boot.sh --start" with administrator privileges
end if 
tell application "VMware Fusion" to activate
 

 

터미널
터미널 로그인 메시지 (Message Of The Day): /etc/motd
iTerm 과 터미널을 그간 쭉 비교해봤지만 본인은 하드코어유저가 아니라서 iTerm이 뭐가 더 나은지 도저히 모르겠다. Visor와 결합된 Terminal.app은 최고!

/etc/bashrc  참고사항
alias ls='ls -vGF'
v는 한글표시, G는 컬러표시, F는 디렉토리 / 표시
젠투 스타일 PS1: PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w\$\[\033[00m\]
여기서 w를 대문자로 적으면 "현재 디렉토리"를 표시.
터미널에서의 한글입력을 바로하기 위해 $HOME/.inputrc
set convert-meta off
set meta-flag on
set output-meta on
터미널에 나오는 호스트명 변경
sudo scutil --set HostName 이름 (PS1을 수정하는 게 더 나을 수도 있음)

Terminal.app에서의 Home/End키 바인딩
vi ~/.inputrc
# Be 8 bit clean.
set input-meta on

set output-meta on

set convert-meta off


# Auto completion options

set show-all-if-ambiguous on

set completion-ignore-case on


# Keybindings

"\e[1~": beginning-of-line       # Home key

"\e[4~": end-of-line             # End key

"\e[5~": history-search-backward # Page Up

"\e[6~": history-search-forward  # Page Down

"\e[3~": delete-char             # Delete key

"\e[5C": forward-word            # Ctrl+right

"\e[5D": backward-word           # Ctrl+left


그리고 Terminal.app를 열고 환경설정 cmd+, 열고 Setting -> Keyboard에서 아래의 항목을 찾아 변경
(더블클릭하면 변경할 수 있으며, \033 문자는 ESC키를 누르면 입력된다)
Home - send string to shell: \033[1~
End - send string to shell: \033[4~
Page up - send string to shell: \033[5~
Page down - send string to shell: \033[6~
Shift page down - scroll to next page in buffer
Shift page up - scroll to previous page in buffer

참고로 Home/End키가 없는 맥북 등에서는 Fn+화살표 키로 Home/End/PageUp/PageDown 작동됨.


서버공통
대부분의 서비스 데몬은 SSL을 사용하지 않더라도 켜줘야만 모바일 기기나 클라이언트들이 제대로 인식함
위키, 블로그, 서버: http://localhost
그외 서버들
웹메일 서버: http://localhost/webmail
아이캘 서버: http://localhost/ical
스노우 레퍼드 서버 설치가 끝난 뒤 첫부팅에서 설정시, 유저데이터와 서버 데이터를 다른 하드로 지정가능.
하지만, 나중에 재설치를 하게 되면, 다른 하드를 재지정할 수 없다. 한 마디로 무용지물.
(단, Netboot는 그대로 쓸 수 있다)

아이캘/위키/블로그 서버 등의 모든 css 및 이미지 파일은 /usr/share/collaboration/ 에 있으며,
메인 페이지 index.html에서 보여지는 css및 이미지 파일은 /usr/share/collaboration/css/serverhome_static 에 있음.

초기에 /etc/service에서 ssh 22번 포트를 변경하면 Server Preferences 작동 안되는 현상이 있었으나, 원상복귀 후 정상작동 확인. 그 이후에 다시 포트를 변경했으나 여전히 정상작동.

iLife09 설치하면 디렉토리 서비스 통째로 날려먹는다. 해결책은 타임머신을 통한 복구 혹은 재설치 이외엔 없다.
절대로 설치하지 말자.

SSL 인증서 때문인지 모르겠지만, 서버의 이름을 바꾸게 되면 아주 심각한 문제에 부딪치게 된다. 오픈디렉토리에 접근할 수 없는 현상이 생기는데, 웹서버의 경우 버츄얼 호스트 기능으로 다수의 도메인 네임을 가질 수 있지만 웹서버가 아닌 서버 자체의 이름 (처음 설치할 때 입력하는 서버이름)을 다른 이름으로 바꾸거나, 혹은 SSL 인증서를 다른 도메인 이름으로 만든 뒤 그것에 우선권을 주게 되는 경우 오픈디렉토리에 접근할 수 없게 되고 결국 로그인을 해야하는 모든 서비스를 이용할 수 없게 된다.

에어포트 익스트림 베이스 스테이션(이하 AEBS) 사용시, 맥미니서버가 AEBS을 Firewall로 간주/세팅.
다 좋은데, Server Preferences에서 On/Off 할 때마다 AEBS을 재부팅하기 때문에 불편.
맥(미니)서버에서 에어포트 유틸리티 실행시, AEBS의 포트포워딩 항목의 필요한 부분을 전부 등록해줘서 편하지만 만약 다른 맥/PC에서 에어포트 유틸리티를 실행하게 되면 맥(미니)서버에서 등록해준 포트포워딩 항목을 모조리 삭제.
서버에서 몇가지 일부 항목은 변경시 AEBS을 재부팅해야함.
AEBS가 재부팅되면서 포트포워딩이 모조리 off.

맥서버를 운영 중인 상황에서 다른 맥을 재설치하거나 새로운 맥이 로컬 네트웍에 접속시 맥서버로부터 메일/캘린더/주소록 등의 초대를 받게 되는데, 이걸 수락하게 될 경우
시스템 설정 - 계정 - 로그인옵션 - 네트워크 계정 서버 에 자동으로 조인된다. 네트워크 계정서버에 조인하게 되면 /Users/ 디렉토리의 퍼미션이 655로 바뀌면서 root로도 퍼미션 수정 및 접근 자체가 안되는 현상이 생긴다. 또한, /Users 안에 계정 폴더가 있음에도 불구하고 인식을 못하는 현상이 생긴다. 자세한 건 공부를 더 해봐야겠지만, 말 그대로 "네트워크 계정 서버"라서 계정을 원격으로 읽어오는 그런 것 같은데, 암튼 작동 불가능. 초대는 무조건 거절하고, 네트워크 계정서버에는 절대 조인하지 말 것.

서버 이름 지정시, 로컬 네트워크 이름은 그대로 두되 Primary DNS의 이름은 실제 도메인으로 서비스 중인 서버가 아니라면 절대 도메인을 지정하지 말고 내부 도메인을 줘야한다. 예:) server.private
다시 말해서, abc.com이라는 도메인으로 실제 서버를 운영 중이라고 하더라도 abc.com의 네임서버가 맥서버로 바로 지정되어있지 않은 경우는 주면 안된다. 주게되면 Xgrid, iCal Server Utility 및 Kerberos 인증 등 몇가지 서비스가 작동되지 않는다.


웹서버
확장자가 html로 끝나는 파일에 아무리 php코드를 넣어도 작동이 안될 경우 /etc/apache2/httpd.conf 파일을 열어 AddType이 명시된 줄 맨 아래에다 다음을 입력한다.
AddHandler php5-script php html

Wiki/Blog에서 YouTube embed tag를 넣으면 자동으로 삭제하는 현상이 있다. 해결방법은 다음과 같다.
$ cd /Library/Application\ Support/Apple/WikiServer/
$ sudo vi whitelist.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>protocols</key>
        <array>
                <string>irc</string>
                <string>scp</string>
        </array>
        <key>styles</key>
        <array>
                <string>font-size</string>
        </array>
        <key>tags</key>
        <dict>
                <key>object</key>
                <array>
                        <string>width</string>
                        <string>height</string>
                </array>
                <key>param</key>
                <array>
                        <string>name</string>
                        <string>value</string>
                </array>
                <key>embed</key>
                <array>
                        <string>src</string>
                        <string>type</string>
                        <string>width</string>
                        <string>height</string>
                </array>
        </dict>
</dict>
</plist>

내용을 확인한다.
$ file whitelist.plist 
whitelist.plist: XML  document text

$ sudo chown _teamsserver:_teamsserver whitelist.plist
$ sudo chmod 644 whitelist.plist
$ sudo apachectl -k restart


아이캘 서버
아이폰에서 아이캘 서버와 동기시, 아이폰에서 계정을 추가해야함.
아이캘 서버 유틸리티에서 Preferences의 Authentication을 Kerberos하면 에러남.
아이캘 서버의 초대기능은 아이폰에서 사용할 수 없음.


주소록 서버
주소록 서버의 경우, 서버의 주소록에서 On My Mac이 아닌, Preferences의 Accounts에서 계정을 별도로 생성한 뒤, 클라이언트의 주소록에서 해당 계정을 동기화해야함.
또한, 주소록 서버의 Push 기능은 아이폰 펌웨어 3.x 버전에서는 작동하지 않음. iOS4에서는 된다고 한다.


유저 관리
Workgroup Manager 실행시 ID는 diradmin, Password는 관리자로 등록된 유저의 비밀번호


하드디스크 공유
맥미니 서버버전의 경우, 하드디스크가 2개 장착되어있는데, 클라이언트에서 서버에 접속하면 두번째 하드는 접근할 방법이 없다. 따라서 임의의 마운트 포인트를 지정해줘야하는데, 세 가지 방법이 있다.
1. 심볼릭 링크를 걸어준다. 다만 이 경우 ssh 등에서는 문제가 없지만 smb, afp 등으로 접속하면 접근이 불가능하다.
2. disk utility를 열고 원하는 파티션을 클릭해 UUID 값을 복사한다. 그런 다음 원하는 디렉토리를 만들고 /etc/fstab을 열고, 다음과 같이 입력한다.
UUID=복사한 UUID값 /원하는 디렉토리 hfs rw 1 2
예제: UUID=9A1D30FE-964D-3483-89D2-F33DCD36FEFE /Users/Data hfs rw 1 2
이것의 문제점은 심볼릭 링크와 똑같다. 분명히 원하는 디렉토리에 볼륨이 마운트 되어있는데 클라이언트에서 보면 아예 보이질 않는다.
3. 가장 확실한 방법이다. Server admin을 실행시키고 AFP로 이동한다.
원하는 볼륨을 클릭하면 우측상단에 Share라는 작은 버튼이 있다. 그걸 클릭하면 하단에 세 가지 탭이 나오는데, Share Point를 누르고 Enable Automount에 체크, 그리고 Edit을 누른다. Custom mount path에 원하는 경로를 입력한다.
사실 터미널 열고 확인하면 그냥 똑같은 심볼릭 링크인데 이 경우는 afp, smb에서도 아주 잘 나온다.


RADIUS 
애플의 에어포트 베이스 스테이션 사용시, RADIUS 서비스 데몬을 키고 설정을 마치면 스노우 레퍼드 서버가 임의로 베이스 스테이션의 세팅과 비번을 바꿔버려서 공유기 사용이 불가능해진다. 이게 뭔지 확실히 아는 경우만 쓰자.


퀵타임 스트리밍 서버
퀵타임 서버 포트: 554, 퀵타임 관리자 메뉴 포트: 1220 (모두 웹으로 접속)
http://localhost:554/


메일서버
애플답지 않게 의외로 서버 어드민 패널에서 일부 설정이 불가능한 사항이 있다. 이는 터미널에서 수작업으로 해줘야하는데, 다행히 Squirrel Mail의 설정프로그램이 있다. 아래의 명령어를 터미널에서 실행한다.
sudo /usr/share/squirrelmail/configure
사용법은 Squirrel Mail 사이트의 매뉴얼을 참고한다.


Netboot
먼저 NFS를 활성화시켜야한다. 그런 뒤, Netboot 설정의 Settings - General 으로 가서, 이미지와  Userdata의 대상하드드라이브를 선택해준 뒤 저장을 한다. 그리하면 대상 하드드라이브의 루트폴더에  /Library/Netboot/NetBootSP0 이라는 폴더가 생성된다.
다음, dmg로 작성된 이미지나 혹은 DVD를 연결한 후(타겟모드 등) 서버유틸의 System Image Utility 실행, Netboot 이미지 만드는데에서 그대로 따라하면 되는데, 결정적으로 중요한 점은(이것 때문에 1시간 소비) 이미지가 생성되는 폴더의 이름은 NetBootSP0이 맞지만 위치를 잘 보면 엉뚱한 곳에 있다. 이것을 위의 세팅에서 잡아준 곳으로 변경한다.

블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,
Mac OS X Snow Leopard 10.6에서 빌드 완료했습니다.
Mac OS X Lion 10.7에서 빌드 완료했습니다.

맥에서 실행되는 젠투설치 매뉴얼이다.
사실 맥에서는 젠투 Prefix를 설치할 필요가 그다지 절실하진 않은데 그 이유는,

1. 맥은 솔라리스와는 다르게 어플리케이션이 엄청나게 많다. 게다가 무료 어플리케이션이 리눅스만큼 있다. 못믿으시겠다고? 그래서 맥은 써봐야 안다는 거다.
2. 수많은 어플리케이션 말고도 FreeBSD의 Ports 시스템까지 있어서, 맥 쓰면 어플부족으로 곤란한 경우는 없다.
사실 어플의 숫자를 따지자면 리눅스랑 막상막하라고 볼 수 있는데다, 프로그램의 질이나 수준을 따지면 맥의 어플이 질적인 면에서 더 뛰어나다고 할 수 있겠다 (본인 생각이다). 게다가 양적으로도 밀리지 않고.

그럼에도 불구하고 맥에서 젠투 prefix를 설치한 건 어디까지나 개인적인 관심에 의해서다.
또 다른 이유가 하나 더 있다면, MacPorts는 Mac OS X에 이미 설치되어있는 툴들을 아주 당연히 무시해버린다. 무슨 말인고하니, 맥이 유닉스 기반이라는 건 다들 아시는 사실이니까 하는 말이지만 맥은 기본적으로 Perl, Python 등의 기본적인 툴들이 포함되어있고, Xcode를 설치하면 gcc등 각종 프로그래밍 언어의 컴파일러들까지 딸려온다. 그런데, MacPorts는 이렇게 설치되어있는 툴들을 무시해버리고 처음부터 끝까지 전부 다 설치해버린다. 즉 다시 말해서 BitTorrent라는 어플리케이션을 설치하기 위해서 Python, ncurses부터 빌드하기 시작해서 수많은 라이브러리/툴들을 모두 설치하고나서야 비로소 어플리케이션이 설치된다는 말이다. 그런데 이것들이 좀 가벼운 것들이 아닐테니 이미 시스템에 있는데도 불구하고 시간을 낭비해가면서 다시 설치해야한다는 거다.
뭐 사실, 다시 다 설치한다는 점을 비롯해서 이 글에서 설명하려는 Gentoo on Mac OS X이랑 별반 다를 건 없지만, 앞서 말했듯 개인적인 관심에 의한 것이고, MacPort가 애플의 지원을 받고있다고는 하지만, 개인적으로 젠투의 프로젝트가 더 끌리기 때문이다. 
하지만 MacPorts가 가진 어플리케이션의 양이 어마어마한 수준이기 때문에 젠투 Prefix에 없는 패키지들은 Ports를 통해야하고 결국 둘 다 공존해야한다는 결론이 내려진다. 

어쨌든... 젠투 Prefix가 뭔지 모르시는 분들을 위해 설명을 하자면, 젠투의 포티지 시스템을 로컬 시스템의 OS에 설치해서 쓰는 방식의, 젠투 프로젝트의 하나이다. 설명이 좀 어려운데, 다시 말씀드리자면, 맥 OS X을 건드리지 않고 젠투의 emerge 명령어를 통해 어플리케이션을 빌드할 수 있는 젠투의 포티지 시스템을 설치하는 것이다. 이것이 MacPorts와의 다른 점이 하나 있는데, MacPorts 자체는 이미 컴파일되어있는 바이너리를 가져와서 그냥 설치하기만 하면 되지만 (물론 어플들은 컴파일을 통해서 설치한다), 젠투는 처음부터 끝까지 모두 컴파일이라는 점, 그리고 Ports는 root 권한이 필요하지만(/opt 밑에 설치된다) 젠투는 개인폴더에 설치되서 운용이 가능하다는 점이다.

설치는 단 한 번의 에러도 없이 완벽히 됐고 그 방법을 매뉴얼화 한다.
먼저 젠투 Prefix 폴더를 만들고 패스를 지정해준다.
$ mkdir gentoo
$ export EPREFIX="$HOME/gentoo"
$ export PATH="$EPREFIX/usr/bin:$EPREFIX/bin:$EPREFIX/tmp/usr/bin:$EPREFIX/tmp/bin:$PATH"

이제 아래의 링크를 클릭해서 Prefix 스크립트를 받고 gentoo 폴더로 옮겨서 755 권한을 준다.
$ chmod 755 ~/Downloads/bootstrap-prefix.sh
$ mv ~/Downloads/bootstrap-prefix.sh ~/gentoo
$ cd ~/gentoo

이제 신발끈을 묶자.
$ ./bootstrap-prefix.sh $EPREFIX tree
$ ./bootstrap-prefix.sh $EPREFIX/tmp make
$ ./bootstrap-prefix.sh $EPREFIX/tmp wget
$ ./bootstrap-prefix.sh $EPREFIX/tmp sed
$ ./bootstrap-prefix.sh $EPREFIX/tmp python
$ ./bootstrap-prefix.sh $EPREFIX/tmp coreutils6
   (컴파일 실패하면 coreutils로 해본다)
$ ./bootstrap-prefix.sh $EPREFIX/tmp findutils
$ ./bootstrap-prefix.sh $EPREFIX/tmp tar15
$ ./bootstrap-prefix.sh $EPREFIX/tmp patch9
$ ./bootstrap-prefix.sh $EPREFIX/tmp grep
$ ./bootstrap-prefix.sh $EPREFIX/tmp gawk
$ ./bootstrap-prefix.sh $EPREFIX/tmp bash
$ ./bootstrap-prefix.sh $EPREFIX portage

rehash 해준다.
$ hash -r

이제부터 필수툴들을 빌드한다.
$ emerge --oneshot -q sed (개인적으로 emerge에서는 -q 옵션을 권장한다. -q는 컴파일 메시지를 보여주지 않는다.)
$ emerge --oneshot -q --nodeps bash
$ emerge --oneshot -q pax-utils
$ emerge --oneshot -q --nodeps xz-utils
$ emerge --oneshot -q --nodeps "<wget-1.13.4-r1" 
(에러날 시  
emerge --oneshot -q --nodeps wget)
$ emerge --oneshot -q --nodeps baselayout-prefix m4 flex bison binutils-config

gcc -v를 해서 gcc의 버전을 확인한다. 만약 4.0.1이면, 
$ emerge --oneshot -q --nodeps "=binutils-apple-3.2"

를 실행하고, 그 4.2.1 버전이면
$ emerge --oneshot -q --nodeps "=binutils-apple"

를 실행한다. Lion이면 후자일 확률이 매우 높다. 
 
$ emerge --oneshot -q --nodeps gcc-config gcc-apple (gcc 컴파일이라 시간이 좀 걸린다)

여기서부터는 방금 전 새롭게 컴파일한 gcc로 기본 툴들을 다시 컴파일하는 과정이다.
$ emerge --oneshot -q coreutils findutils tar grep patch gawk make
$ emerge --oneshot -q --nodeps file eselect

이제 부트스트랩된 포티지가 덮어씌여질 수 있도록 임시로 세팅을 바꿔서 포티지를 emerge한다.
$ env FEATURES="-collision-protect" emerge --oneshot -q portage

이제 임시파일을 지우고 rehash한다.
$ rm -Rf $EPREFIX/tmp/*
$ hash -r

포티지 트리를 업데이트 하자.
$ emerge -q --sync

Prefix 설치를 마무리할 수 있게끔 시스템을 빌드하자.
$ env USE=-git emerge -uq system

이제 대망의 마지막 작업이다. 여기서는 USE, CFLAGS를 지정해서 컴파일을 할 수 있다.
인텔 아이맥 코어2듀오 유저나 15인치 i5 맥북프로 유저라면 필자의 CFLAGS를 추천한다. 맥 좋은 게 뭔가. 동일한 플랫폼 아닌가. 아마 똑같이 작동할 거라고 믿는다. 필자의 CFLAGS는 젠투를 10번을 넘게 컴파일해가면서 얻어낸,  적어도 맥에서만큼은 안정적으로 작동하는 것들이다.
참고로, 아이맥 20", 24", 맥미니서버, 맥북프로 15" i5, i7에서 모두 빌드완료했다.

$ vi $EPREFIX/etc/make.conf

빈 파일이다. 내용을 입력해넣자.
CFLAGS="-mtune=core2 -march=core2 -mssse3 -msse3 -O3 -pipe -fomit-frame-pointer -funroll-loops"
CXXFLAGS="${CFLAGS}"
ACCEPT_KEYWORDS="amd64"
MAKE_OPTS="-j3"
LINGUAS="en ko"
USE="unicode nls"

위의 MAKE_OPTS에서는 자신이 쓰는 PC의 CPU 코어에 1을 더하면 된다.
Core i7이라면 코어가 4개일테니 5를 적어주면 되겠다.

혹시나 싶어 링크를 드린다. 안전한 CPU별 CFLAGS이다. http://en.gentoo-wiki.com/wiki/Safe_Cflags/Intel
이제 마지막 작업이다. 새로운 CFLAGS와 이것들을 빌드하기 위해서 그동안 만들어온 툴로서 다시 시스템 전체를 컴파일할 차례이다. 역시 -q 옵션 권장한다.
$ emerge -eq system

아무런 에러없이 빌드가 완료될 것이고, 코어2듀오 2.4GHz 기준으로 약 2시간이면 모두 끝난다.
(i5 이상의 경우 1시간 30분이내에 끝난다. 그나마도  gcc 컴파일에서 40분 잡아먹는다.)
아래의 내용을 실행해주자.
$ cd $EPREFIX/usr/portage/scripts
$ ./bootstrap-prefix.sh $EPREFIX startscript

이제 $HOME/gentoo 폴더에 보면 startprefix라는 실행파일이 하나 보일 거다. gentoo 폴더를 어디에 옮기든 이 startprefix만 실행해주면 언제든 emerge를 사용할 수 있다. 참고로 startprefix를 하고나면 /sbin, /usr/sbin의 패스가 걸려있지 않은데, startprefix 파일을 열어서 보면 root 유저인지 아닌지에 따라 패스를 거느냐 안거느냐 판단을 하는 부분이 있기 때문이다. 그런데 사실 root가 아니더라도 sbin 쓸 일은 수도없이 많기 때문에(ifconfig, ping, traceroute 등등) 이 부분에 대한 패스를 걸어준다.

$ vi $HOME/gentoo/etc/profile
if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then 부분을 찾는다. 대략 24라인에 있다.
보시면 PATH= 라고 해서 잘 살펴보시면 /usr/sbin, /sbin 모두 패스가 걸려있다. 이 부분이 root에 대한 부분이고 그 아래 else 라고 적혀있고 PATH 라인이 있는데 여기 보시면 /sbin, /usr/sbin이 없다. 그래서 이 부분에 패스를 걸어주면 이제 일반 유저들도 startprefix 이후에 /sbin, /usr/sbin 바이너리를 이용할 수 있다.
패스추가는  이렇게 한다.

/sbin:/usr/sbin

디렉터리와 디렉터리 사이에는 콜론 : 으로 구분을 지어줘야한다. 필자의 설정을 예제로 들어본다.
/Users/jswlinux/Gentoo/usr/bin:/Users/jswlinux/Gentoo/bin:${PATH}:/usr/bin:/bin:/usr/sbin:/sbin"

이상이다. Enjoy your Prefix!
블로그 이미지

jswlinux

Seowon Jung의 잡동사니 보관소

,