git, mac

OS X - OS 업데이트 후 git 등 오류 발생 시 솔루션

최근 macOS Sierra 업데이트가 있었다.

과거 OS X El Capitan 업데이트도 포함됨

언제나 처럼 먼저 업데이트하면 골치아픈 일이 많이 생기네요 ㅠ

그러던 중에 Xcode Command Line Tools 의존성 이슈가 발생하는 경우가 생겼다. git을 실행시키는데 아래와 같은 오류와 함께 실행이 되지 않는 케이스이다.

 

$ git --version
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

 

XCode를 재설치하면 해결되나 나와 같은 전체설치가 필요하지 않는 경우에는 Xcode Command Line Tools만 설치할 수 있다.

 

$ xcode-select --install

 

설치 후 2343 최신버전으로 확인된다.

 

$ xcode-select -v
xcode-select version 2343.




 

맥을 쓰면 좋은 점은 바로 ~



 

소리가 아닐까 싶습니다만.



 

주변 사람들을 흠칫! 하고 쳐다보게 만드는 소리...



 

민망하기도 합니다.



 



 

소리를 없애고자, 공공장소에서 예의를 지키고자,



 

진행합니다.



 

부팅시 소리 없애기!



 



 



 



 



 



 

1. 터미널을 찾아서 실행!



 



 

一 心 O 0



 



 



 



 

2. 터미널에서 아래 명령어를 입력합니다!



 

sudo nvram SystemAudioVolume="%00"



 

00 말그대로 수치입니다. 수치를 조금 키우면 소리를 작게 만들 있습니다!



 

하지만 저는 아예 소거 시키길 원해서 00 줬습니다.



 

입력 , 패스워드를 넣어주면 !



 

* 패스워드 입력시, 아무 문자도 나타나지 않지만, 입력은 되고 있으니 자연스럽게 입력하세요!!



 



 

moonyeonsu 
— -bash — 80x24 
Last login: Sat Mar 19 12:55:45 on console 
moonyeonsu$ sudo nvram 
http://pabit.tistory.com



 



 



 



 



 



 



 



 



 



 



 

이렇게 하면 부팅 소리 없애기 끝입니다!



 



 

하지만, 다시 부활을 시키고 싶다면



 

아래 명령어를 터미널에 써줘서 부활 시키면 됩니다!!



 



 

sudo nvram -d SystemAudioVolume



 

출처http://palpit.tistory.com/859 [palpit's log-b]



 

출처http://palpit.tistory.com/859 [palpit's log-b]



 

출처http://palpit.tistory.com/859 [palpit's log-b]



 

출처http://palpit.tistory.com/859 [palpit's log-b]


 


 


For some reason mysql on OS X gets the locations of the required socket file a bit wrong, but thankfully the solution is as simple as setting up a symbolic link.

You may have a socket (appearing as a zero length file) as /tmp/mysql.sock or /var/mysql/mysql.sock but 1 or more apps is looking in the other location for it.

Rather than move the socket and have to edit config files and remember to keep edited files local and away from servers where the paths are correct, simply create a symbolic link so your mac finds the required socket, even when it's looking in the wrong place!

If you have /tmp/mysql.sock but no /var/mysql/mysql.sock then...

cd /var
sudo mkdir mysql
sudo chmod
755 mysql
cd mysql
sudo ln -s /tmp/mysql.sock mysql.sock

If you have /var/mysql/mysql.sock but no /tmp/mysql.sock then

cd /tmp
ln -s /
var/mysql/mysql.sock mysql.sock

You will need permissions to create the directory and link, so just prefix the commands above with sudo if necessary.

Hope this helps. It has sorted this exact issue for me on 3 macs so far.

아파치 설정하기

아파치는 맥에 포함되어 있지만, 기본적으로 활성화 되어 있지 않다.

활성화 하는 방법은 시스템 환경설정 - 공유 에서 "웹 공유" 를 체크하면 된다. 그런데 본인꺼 (Mountain Lion)에는 보이지 않는다. 그렇다면 터미널을 이용하면 된다. 아니.. 처음부터 터미널만 이용하면 될 것 같다.

1. 아파치 활성화

  • 터미널에서 sudo apachectl start
  • 브라우저에서 http://localhost/ 를 열어서, It works! 라는 글이 나오면 성공.
  • 기본 로컬호스트는 사용자 폴더의 Sites 폴더를 가르킨다. 간혹, /Library/WebServer/Documents 로 되어있는 경우도 있다. 이는 아파치 설정파일을 보면 된다능. 만약 그런 경우 사용자 폴더의 Sites 로 루트를 변경하고 싶다면, httpd.conf (/etc/apache2/)파일을 열어 2군데를 수정한다. 아래 예시처럼 DocumentRoot 라는 부분과 그 살짝 아래 부분에 경로를 바꿔준다.





2. 가상호스트 이름 추가하기

  • cd / 로 가장 상위 폴더로 이동
  • sudo nano /etc/hosts 로 호스트 파일을 연다.
  • 원하는 도메인을 새로운 행에 추가한다. 예) 127.0.0.1  test.local

3. 가상 호스트에 해당하는 폴더 만들기

아래와 같이 가상호스트의 홈으로 지정하려는 폴더를 만들거나 기존 폴더를 활용한다. 여기서는 Sites 폴더 아래 새로운 폴더를 만든다. 그리고 index.html 파일을 만든다.

cd ~/Sites 

mkdir test.local 

cd test.local 

echo "this is test.local" > index.html



4. 가상 호스트 설정 만들기

  • 위에서 만든 폴더로 가상 도메인이 설정되도록 해야 한다. /etc/apache2/users/ 폴더에 자신의 계정과 같은 파일이 존재해야 한다.
  • sudo nano /etc/apache2/users/brownsoo.conf 를 치면 아래 내용이 기본으로 있다.(없다면 그냥 만든다. brownsoo 는 내 계정이름이다)
<Directory "/Users/username/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>


  • 아래와 같이 내용을 수정한다.
NameVirtualHost *:80

<Directory "/Users/brownsoo/Sites/">
    Options Indexes MultiViews Includes
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:80>
    ServerName test.local
    DocumentRoot /Users/brownsoo/Sites/test.local
</VirtualHost>


  • 저장한 다음. 아파치를 재시작한다.

sudo apachectl graceful 



업데이트 사항

10.9 Mavericks 부터 가상호스트 설정을 별도 파일로 관리하는 것으로 바뀐듯 하다. 여기를 참고하기 바란다. 요약하자면,,
  • 아파치 설정파일을 열어 아래 주석을 풀어준다.
  • Include /private/etc/apache2/extra/httpd-vhosts.conf
  • 가상호스트 설정 파일 (/etc/apache2/extra/httpd-vhosts.conf)을 열어 아래 내용처럼 추가한다.
<VirtualHost *:80>
    ServerName test.local
    DocumentRoot "/Users/brownsoo/Sites/test.local"

    <Directory "/Users/brownsoo/Sites/test.local">
        Options Indexes MultiViews Includes
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>


5. http://test.local/ 를 브라우저로 확인한다.

* 이제 필요한 만큼 사이트를 추가해서 사용하면 된다능~





PHP 활성화 하기

1. php 활성화를 위해 아파치 설정파일을 연다. sudo nano /etc/apache2/httpd.conf

2. LoadModule php5_module이란 글로 시작하는 부분을 찾아서 # 을 제거해준다.

3. 아파치를 재시작한다.

4. 테스트 php 파일을 작성해서 테스트 해보자.

cd ~/Sites/test.local 

echo "<?php phpinfo(); ?>" > index.php



맥에 PHP 까지 기본으로 있다니, 정말 좋다. 그리고 SSI 도 있다니, 위 사이트를 참고하기 바란다. 우홋!

참고 : http://www.studiotips.net/docs/tips_sql/mysql/phpmyadmin.html



SSI 설정하기

SSI 를 활성화 시켜야 일반적인 웹사이트를 볼 수 있더라구요. 결과적으로 아래 방법까지 해놔야 플래시 임베딩도 잘되고,, 스크립트도 잘 돌아간다.

아파치 설정파일 /etc/apache2/httpd.conf 을 열어서 mime_module 부근에 있는 아래 문장을 주석해제한다.

#AddType text/html .shtml 

#AddOutputFilter INCLUDES .shtml
 


그리고 사용자 설정파일 (/etc/apache2/users/brownsoo.conf) 을 열어서 아래처럼 내용 추가한다.

NameVirtualHost *:80


    Options Indexes MultiViews Includes
    AllowOverride All
    Order allow,deny
    Allow from all

    AddType text/html .shtml .html
    AddOutputFilter INCLUDES .shtml .html

    AddType application/x-httpd-php .html



    ServerName test.local
    DocumentRoot /Users/username/Sites/test.local



* Mavericks 이후 버전이라면, 설정파일(/etc/apache2/extra/httpd-vhosts.conf)에서 이렇게 되겠다.
<VirtualHost *:80>
    ServerName test.local
    DocumentRoot "/Users/brownsoo/Sites/test.local"

    <Directory "/Users/brownsoo/Sites/test.local">
        Options Indexes MultiViews Includes
        AllowOverride All
        Order allow,deny
        Allow from all

        AddType text/html .shtml .html
        AddOutputFilter INCLUDES .shtml .html

        AddType application/x-httpd-php .html
    </Directory>
</VirtualHost>




서브 디렉토리 접근하기

제로보드를 설치해보려고 압축을 풀었는데, 접근이 제한되어 있어서 안된다능.. 터미널에서 접근권한을 설정하는 방법을 검색해보고 해봤지만 여전히 안 되었다. 해결 방법은 FollowSymLinks 를 추가해야 했다. 사용자 설정 파일을 열어서 Directory 태그 안에 추가하자.

Options Indexes MultiViews FollowSymLinks 




요세미티 버전이상이라면, 이것도 추가한다.

Require all granted 




아래 사이트들에 자세히 설명되어 있다.

http://www.456bereastreet.com/archive/201104/apache_with_virtual_hosts_php_and_ssi_on_mac_os_x_106/

Add custom hostname to Apache on OSX 10.9 Mavericks




For some reason mysql on OS X gets the locations of the required socket file a bit wrong, but thankfully the solution is as simple as setting up a symbolic link.

You may have a socket (appearing as a zero length file) as /tmp/mysql.sock or /var/mysql/mysql.sock but 1 or more apps is looking in the other location for it.

Rather than move the socket and have to edit config files and remember to keep edited files local and away from servers where the paths are correct, simply create a symbolic link so your mac finds the required socket, even when it's looking in the wrong place!

If you have /tmp/mysql.sock but no /var/mysql/mysql.sock then...

cd /var 
sudo mkdir mysql
sudo chmod 755 mysql
cd mysql
sudo ln -s /tmp/mysql.sock mysql.sock

If you have /var/mysql/mysql.sock but no /tmp/mysql.sock then

cd /tmp
ln -s /var/mysql/mysql.sock mysql.sock

You will need permissions to create the directory and link, so just prefix the commands above with sudo if necessary.

Hope this helps. It has sorted this exact issue for me on 3 macs so far.



아직 Parallels 6와 Lion의 호환성에 문제가 있는듯. 
다음 쉘 명령을 통해 커널익스텐션을 로딩해 주면 정상적으로 작동. 

응용프로그램 > 유틸리티에 있는 터미널을 실행 한다음 다음 Shell명령을 한줄씩 실행 합니다.
 

1. Shell 명령:
sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_hypervisor.kext"
sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_hid_hook.kext"
sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_usb_connect.kext"
sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_netbridge.kext" 
sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/prl_vnic.kext"


2. 위에 5가지 를 한방에 
for x in prl_hypervisor prl_hid_hook prl_usb_connect prl_netbridge prl_vnic; do      sudo kextutil "/Library/Parallels/Parallels Service.app/Contents/Kexts/10.6/$x.kext"; done 


3. Update Parallels.
Parallels 12090 버젼에서는 정상적인 구동을 확인함.

 
출처 : http://ngsung.tistory.com/2
  1. 사짜 참을인 2011.09.25 04:44 신고

    해봤는데 결국 실패. 되긴 하지만 부팅시 다시 해줘야 하는 번거로움이 있다고 함.

    난 안됐음.

    지금은 라이온 호환되는 버전 찾아서 돌리고 있음.

제작사 홈페이지 : http://www.titanium.free.fr/index_us.html

찌꺼기 파일을 한번에 날려주는 프로그램

이미지는 자동으로 삭제하기 탭


한가지 안좋은 점은 한영변환 편리 유틸의 설정파일도 날라간다.

다른 유틸의 설정파일은 그대로 인데 말이지.

그래도 한번 싹 비우고 나면 컴퓨터가 가벼워졌다는 느낌을 받는다.

제작사 홈페이지 첨부. 무료 유틸리티.
  1. ㅋㅋ 2011.03.13 22:43 신고

    배경화면 까지 날려버리네요 ㅎㅎ

firefox를 빠르게 해주는 팁입니다.

서핑 중에 찿은 팁이 상당히 위력이 있어 소개합니다.

1.Type “about:config” into the address bar and hit return. Scroll down and look for the following entries:
(주소표시줄에 "about:config"를 입력하고 아래 항목들을 찿으시오)


network.http.pipelining 

network.http.proxy.pipelining 

network.http.pipelining.maxrequests
Normally the browser will make one request to a web page at a time. 

(기본적으로 한번에 한페이지를 로딩하게 되어 있다)

When you enable pipelining it will make several at once, which really speeds up page loading.
(pipelinging을 사용하게 되면 한번에 여러 페이지를 로딩하게되어 실제 페이지 로딩 속도를 느낄 수 있다)


2. Alter the entries as follows: 

(아래 항목을 찿은 후에)

Set “network.http.pipelining” to “true”
Set “network.http.proxy.pipelining” to “true”
Set “network.http.pipelining.maxrequests” to some number like 30. This means it will make 30 requests at once. (저는 90으로 했읍니다.)


3. Lastly right-click anywhere and select New-> Integer. Name it “nglayout.initialpaint.delay” and set its value to “0″. This value is the amount of time the browser waits before it acts on information it receives.
(마지막으로 아무데나 마우스 우클릭하여 “nglayout.initialpaint.delay”라는 정수(i)의 항목을 만들고 값을 "0"으로 입력하시오. 이것은 브라우저가 정보를 받기 전에 기다려야 하는 시간의 양을 말하는 겁니다. - 저는 페이지의 로딩정보를 받기 전에는 안 움직인다고 이해했습니다. 실제로 이항목을 적용 후에는 다른 페이지들이 로딩 중에는 꼼작도 안하던 파폭이 다른 페이지가 열렸습니다.)


출처 : http://irc.bittalk.org/thread70371.html
  1. 2010.06.08 19:05

    비밀댓글입니다

+ Recent posts