# mount -t nfs -o nolock 192.168.0.100:/home/test/nfs nfs

 

OSX 에서 위의 명령어로 nfs mount 시, Operation Not Permitted 메시지가 발생하면 mount 가 되지 않았다.

 

이때 아래의 옵션을 추가하여 진행해서 해결하였다.

 

# mount -t nfs -o nolock,resvport,rw,nfc 192.168.0.100:/home/test/nfs nfs

각각의 옵션은 다음과 같다.

 

nolock : 2개 이상의 클라이언트에서 동일한 파일을 엑세스할 때, 잠금 설정을 해제

resvport : 인증되지 않는 엑세스 허용

rw : 읽기/쓰기 권한을 모두 주기

nfc : 한국어(utf-8)로 된 디렉토리/파일은 이것을 설정해줘야 제대로 인식 된다.

 

 


MAC 하이 시에라로 업데이트 하면서 telnet / ftp 클라이언트 유틸들이 사라져 버렸다. 개발 시 많이 쓰는 유틸들이라 불편해서 Homebrew를 이용하여 설치하였다.


 $ brew install inetutils 




sudo sysctl -w net.inet.ip.forwarding=1




http://finalcut-pro.tistory.com/183




아래의 링크에서 확인 가능함..


http://blog.cahg.org/wp/?p=271




간혹 맥에서(리눅스도 마찬가지) 권한 없다고 Operation not permitted 메시지를 마구 뿌려대는 경우를 만날 수 있습니다. 짜증나죠... 그래서 root로 로그인하거나 sudo로 명령을 날려보죠 다음처럼요.

 

sudo mv vssver2.scc vssver2.scc.test
Password:
mv: rename vssver2.scc to vssver2.scc.test: Operation not permitted


이 경우 파일의 플래그 설정에 문제가 있어서 발생하는 문제입니다. 해결은 다음처럼 find 명령으로 찾아서 일괄 변경하거나 직접 chflags 명령을 사용해서 하시면 됩니다.

 

변경 방지를 위해 잠겨있는 파일 찾기 (현재 디렉토리 기준)

 find . -flags +uchg

 

변경 방지를 위해 잠겨있는 파일 찾기 (경로 지정)

find /Volume/My\ Passport/ -flags +uchg

 

검색된 파일을 잠금 해제하는 방법

 $ find . -flags +uchg -exec chflags nouchg {} \;

or

find . -flags +uchg -print0 | xargs -0 chflags nouchg


출 처 : http://kiros33.blog.me/130178919560









자동 생성되는 .DS_Store

Mac OS X의 Finder는 각각의 디렉터리에 .DS_Store(일반적으로 OS X에서는 파일 이름 앞에 “.”을 붙임으로써 숨길 수 있습니다.)라는 파일을 생성하여 해당 디렉터리에 들어있는 파일들에 대한 아이콘의 위치와 보기 설정 등의 정보를 담아 둡니다. 10.4 이전의 버전에서는 암호화되어 있지 않았기 때문에 원격 파일 서버에서 생성되지 않았으나, 10.4 버전부터는 SMB/CIFS, AFP, NFS, WebDav등의 프토토콜을 통해 파일 서버에 접속하게 되어도 해당 디렉터리에 파일을 생성하곤 했습니다.

다만 윈도우에서는 .DS_Store 파일이 그대로 보이기 때문에 깔끔한 폴더를 원하는 사용자들은 일일이 파일을 지우곤 했습니다. 이러한 파일들이 네트워크 드라이브에 다시는 생성되지 않게 하기 위해서는 다음과 같은 동작을 실행해 주면 됩니다.

1. 터미널을 엽니다.
2. 다음 명령을 실행합니다

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

3. 재부팅 혹은 로그아웃했다 다시 로그인합니다.

위의 동작을 실행하여도 자신의 맥에서는 .DS_Store 파일을 생성하고 기존에 생성된 .DS_Store 파일을 삭제하지 않습니다.

추가 정보

기존에 생성된 .DS_Store 파일을 지우기 위해서는 다음과 같은 동작을 실행하면 됩니다.

1. 터미널을 엽니다.
2. 다음 명령어를 실행합니다.

sudo find / -type f -name .DS_Store -print -delete

위의 명령은 루트 디렉터리에서 .DS_Store의 이름을 갖는 파일을 찾아서 삭제하는 명령입니다.

출 처 : http://www.iamkei.com/?p=299

맥에서 tftp 사용하기 (Using tftp on the Mac)

일반적으로 많이 쓰이지는 않아도 라우터등의 장비 펌웨어 업그레이드라던지 임베디드 보드 개발할 때 유용한 도구중에 하나가 tftp(trivial ftp)이다.
Mac OS X에도 역시 기본으로 포함되어 있지만 다른 daemon들과는 다르게 자동으로 실행하게 되어있지 않다. 그리고 실행하려면 직접 하면 안되고 꼭 launchd와 /System/Library/LaunchDaemon/tftp.plist를 사용해서 실행해야 한다.



실행하는 방법은 다음과 같다.

sudo launchctl
Password:
launchd% load -F /System/Library/LaunchDaemons/tftp.plist
launchd%

이제 아무 문제가 없으면 launchd가 tftp 포트를 listen하고 있다가 connection이 들어오면 tftp를 실행해주게 된다.

그리고 linux/unix의 경우 일반적으로 tftp 디렉토리는 /tftpboot 를 사용하지만 맥에서는 tftp.plist 파일에서 지정하게 되어 있고 디폴트로는 /private/tftpboot 디렉토리이다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<true/>
<key>Label</key>
<string>com.apple.tftpd</string>
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/tftpd</string>
<string>-i</string>
<string>-s</string>
<string>/private/tftpboot</string>
</array>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>tftp</string>
<key>SockType</key>
<string>dgram</string>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<true/>
</dict>
</dict>
</plist>

 
텍스트 에디터로 tftp.plist파일을 열어보면 내용은 위와 같다. 그 중 bold체로 된 부분을 변경해 주면 tftp 디렉토리를 원하는대로 바꿔줄 수 있다.

사용이 끝나 실행을 중단시키고 싶으면 실행할 때와 마찬가지로 launchctl에서 명령을 내려주면 된다.

launchd% unload /System/Library/LaunchDaemons/tftp.plist

만일 tftp를 부팅할 때 부터 계속 실행하도록 해 주고 싶으면 launchctl에서 다음의 명령을 사용한다.

launchd% load -w  /System/Library/LaunchDaemons/tftp.plist

또한 반대로 부팅할 때 부터 계속 실행되는걸 멈추고 싶으면 아래 명령을 사용하면 된다.

launchd% unload -w /System/Library/LaunchDaemons/tftp.plist

출 처 : http://arsviator.blogspot.kr/2009/12/%EB%A7%A5%EC%97%90%EC%84%9C-tftp-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-using-tftp-on-mac.html


homebrew는 MacPorts같은 패키지 관리자입니다. Homebrew와 MacPorts가 뭔지 모르는 사람도 있겠군요. Homebrew는 Mac OS X에서 mysql, wget 같은 소프트웨어를 쉽게 설치하고 관리하게 도와주는 프로그램입니다.

자, 소개는 이만하고 homebrew를 몇 달 써본 경험을 바탕으로 자주 쓰는 명령을 정리해보겠습니다.

설치법!

이건 홈페이지에 나와 있지만 정리 차원에서 적어봅니다.

ruby -e \"$(curl -fsSkL raw.github.com/mxcl/homebrew/go)”

간단하죠?

새 버전으로 고고싱!

homebrew 새 버전으로 업그레이드하고 싶다면,

brew update

역시나 간단합니다.

패키지 설치하기

잠시만!

mysql 같은 소프트웨어를 설치하기 전에 할 일이 하나 있습니다. 예를 들어 svn v1.7.x 를 설치하려고 한다면 Mac OS X – Mountain Lion에는 /usr/bin/svn에 이미 설치되어 있다는 점을 생각합시다. homebrew는 보통 /usr/local/bin에 프로그램을 설치하는데 경로 탐색시 /usr/bin/usr/local/bin보다 우선이기 때문에 쉘에서 svn을 치면 운영체제에 딸려온 v1.6.x 대의 svn이 실행됩니다. 이런 점을 개선하려면 ~/.profile파일을 생성하거나 수정해 아래와 같이 경로 탐색 순서를 바꿉니다.

export PATH=\"/usr/local/bin:/usr/local/sbin:$PATH\"

정말 설치하기

wget을 설치한다고 해보죠. 역시나 간단합니다.

brew install wget

이렇게 하면 끝납니다. 그런데 말이죠. wget으로 웹 사이트 백업하기에 나오듯이 아래 명령을 실행하면 이상하게 오류가 납니다.

Jay:~ plaintext$ wget —recursive --html-extension --convert-links —page-requises --remote-encoding=utf-8 --local-encoding=utf8 —restrict-file-name=nocontrol http://andromedarabbit.net

This version does not have support for IRIs

IRI라는 기능이 필요하다는데 설치가 안 된 모양이죠? 이럴 때는 설치 옵션이 더 없나 살펴봅니다.

옵션 넣고 설치하기

wget 패키지에 옵션이 뭐가 있나 확인해볼까요?

Jay:~ plaintext$ brew options wget
--enable-iri
    Enable iri support
--enable-debug
    Build with debug support

IRI 기능을 넣는 옵션이 있군요. 이제 다시 옵션을 넣고 wget을 설치해봅니다. 물론 기존에 설치한wget을 지워야 설치가 되겠죠?

brew uninstall wget
brew install wget --enable-iri

—enable-iri 옵션을 주고 앞선 웹 사이트 백업 명령을 다시 실행해봅니다. 어떻습니까? 잘 되지요?

이렇게 설치 전에 설치 옵션이 뭐가 있나 확인해보는 습관을 들이면 이런 삽집은 하지 않아도 됩니다.

패키지의 새 버전 받기

homebrew 의 새 버전을 받을 땐 어떻게 했죠?

brew update

그렇다면 wget의 새 버전을 받고 싶다면 어떻게 할까요? update 대신 upgrade 명령을 쓰면 됩니다.

brew upgrade wget
brew upgrade

brew로 설치한 모든 소프트웨어를 최신 버전으로 업그레이드하고 싶다면 패키지 이름을 넣지 않으면 됩니다. 하지만 어떤 소프트웨어는 새 버전에 버그가 있다고 들어서 전부 업그레이드하기 불안할 수도 있습니다. 이런 경우에는 outdated 명령으로 새 버전으로 업데이트할 대상 소프트웨어가 무엇인지 알아보면 됩니다.

brew outdated

패키지 찾기

앞선 예제에선 wget을 설치했습니다만 패키지 이름을 정확히 모를 때는 어떻게 할까요? 이번에는svn을 찾는 예제로 살펴봅니다.

brew search svn 

이렇게 치면 svn과 관련된 패키지 네 개가 나옵니다.

  • colorsvn
  • cvs2svn
  • git-svn-abandon
  • svn

이 중에서 내가 원하는 소프트웨어를 찾으면 되겠지요? 이 경우에는 svn같습니다만 뭐가 뭔지 모를 때는 어떻게 할까요? 이럴 땐 info명령을 쓰면 됩니다.

Jay:~ plaintext$ brew info colorsvn
colorsvn: stable 0.3.2

http://colorsvn.tigris.org/

Not installed

https://github.com//homebrew/commits/master/Library/Formula/colorsvn.rb

==> Caveats
You probably want to set an alias to svn in your bash profile.
So source /usr/local/etc/profile.d/colorsvn-env.sh or add the line

    alias svn=colorsvn

to your bash profile.

So when you type \"svn\" you\'ll run \"colorsvn\".

colorsvn은 http://colorsvn.tigris.org에서 개발한 소프트웨어라는군요.

이렇게 내가 원하는 프로그램을 찾아내면 됩니다만 아예 키워드조차 모르겠다 싶을 때는 패키지 이름을 빼고 다음과 같이 실행하면 됩니다.

brew search

이렇게 하면 homebrew가 제공하는 패키지가 모두 나옵니다.

설치된 패키지 목록 보기

내가 로컬에 설치한 패키지가 뭐뭐 있나 궁금할 땐 list 명령을 씁니다.

brew list

설치 경로

실제 파일이 설치되는 곳은 /usr/local/Cellar/ 디렉터리 안입니다.

/usr/local/bin에서 파일 제거하기

homebrew는 원본 파일을 /usr/local/Cellar 폴더에 두고 /usr/local/bin/에 심볼릭 링크(바로가기라고 생각하면 쉽습니다)를 생성합니다. 이렇게 해서 접근성을 높입니다. 하지만 mysql의 여러 버전을 한꺼번에 사용하는 경우에는 한 버전만 /usr/local/bin에 심볼릭 링크를 두던가, 아니면 아예 심볼릭 링크를 두지 말아야 합니다. 이런 경우에는 unlink 명령으로 심볼릭 링크만 삭제하면 됩니다.

brew unlink mysql

탭 자동완성 활성화하기

bash 쉘에서 탭 자동완성 기능을 쓰고 싶다면 아래 파일 중 하나를 생성하거나 편집하여

  • ~/.profile
  • ~/.bashrc
  • ~/.bash_profile

다음 코드를 적어넣습니다.

source `brew --prefix`/Library/Contributions/brew_bash_completion.sh
출 처 : http://andromedarabbit.net/wp/homebrew-%EC%82%AC%EC%9A%A9%EB%B2%95/


맥도 BSD 기반이므로 일반적인 UNIX 환경처럼 terminal 사용이 가능하다. 따라서 터미널을 연 후 su를 통해 root로 쉘을 띄울 수 있다. su -l (또는 su -) 명령어를 통하면 login과 같은 과정을 거치게 되는데, root 홈 디렉토리에 있는 .bash_profile을 읽어오지를 않는 문제가 있다.

이유는 간단하다. root는 /bin/bash 대신에 /bin/sh를 사용하는데 일반적인 Linux에서는 /bin/sh는 /bin/bash에 대한 symbolic link이지만 맥에서는 (BSD가 원래 그런지는 모르겠다) 실제로 다른 쉘이기 때문이다. 따라서 .bash_profile은 읽어 오지 않으며 .profile만 읽어온다.

P.S. 약 30분 동안 PATH 가지고 고민한 끝에 env 쳐 놓고 보다가 알아 낸 사실… -_-;;


출 처 : http://drshawn.egloos.com/viewer/4754155

+ Recent posts