Showing posts with label macports. Show all posts
Showing posts with label macports. Show all posts

Sunday, November 17, 2013

GCC in OS X Mavericks

GCC in OS X Mavericks

GCC in OS X Mavericks


;; =================================================
;; εμαcs is ⎋[esc]⌘[meta]⌥[alt]⌃[ctrl]⇧[shift].
;; =================================================

This post is written with emacs org-mode.

Operating System Environments

  • Main- : OS X Mavericks (10.9)
  • Sub- : Debian GNU/Linux Wheezy (7.2)
  • Server: Debian GNU/Linux Squeeze || Lenny
  • Mobile: iOS 7.0.4

Installation of GCC(gcc48) via MacPorts

GCC is the GNU Compiler Collection, including front ends for C, C++, Objective-C, Objective-C++, Fortran, and Java. In OS X Mavericks a sort of gcc is preinstalled, but it is based on the Clang. This preinstalled gcc is not fully compatible to GCC(GNU Compiler Collection). Moreover it can compile only C, C++, and Objective-C. I need a Fortran compiler.

Up to OS X Mountain Lion (10.8), GCC(GNU Compiler Collection) has been easily installed via MacPorts. However, in OS X Mavericks (10.9) a GCC(GNU Compiler Collection) port seems to be broken. A problem may be caused by the broken libgcc port that is the mainly dependent port of gcc43, gcc44, gcc45, gcc46, gcc47, gcc48. It cannot be installed via sudo port install libgcc. I don't fully understand why, but my conclusion is that any GCC(GNU Compiler Collection) is not possible to be installed via MacPorts in the usual way.

Fortunately I found a way around. It works!!! If you install the port py27-scipy, then GCC(GNU Compiler Collection), particularly gcc48, is going to be automatically installed. (see here.)

The versions of Xcode and MacPorts in my OS X Mavericks are

The proper version of MacPorts for Mavericks is required to be installed or re-installed.

Procedure in Bash shell (Terminal.app)

  1. Install Xcode command line tools.
    $xcode-select --install
    
  2. Update ports and install py27-scipy for gcc48 to be installed.1 Be patient. It takes about 2 hours.
    $sudo port selfupdate
    $sudo port install py27-scipy
    
  3. Set gcc to gcc48. gcc_select port is required. To see all variants of installed gcc, run the second line.2
    $sudo port install gcc_select
    $port select --list gcc
    $sudo port select gcc mp-gcc48
    $hash gcc
    $gcc --version
    

    10900062763_f192a02d82.jpg

  4. Clean up temporary files used in the middle of a port installation procedure.(Optional)3
    $sudo port -f uninstall inactive
    $sudo port -f clean --all all
    

HaPPy coding.

Epilog

Mavericks upgrade 후에 자동으로 깔리는 gcc는 적응이 안된다. C의 경우 options를 조정하면 어찌어찌 그 전에 짜 놓은 C codes를 돌릴 수도 있을 것 같기도 한데… 이렇게 돌린 계산 값의 신뢰도도 조금 우려되고… 어차피 Java나 Fortran을 돌리려면 GCC(GNU Compiler Collection)가 필요하다.

지난 Posts(OS X Mavericks, OS X Mavericks: list of compatible applications)에서 $sudo port selfupdate 가 먹히는 것만 보고 MacPorts가 동작한다고 썼는데, 제대로 쓰려면 현재(<2013-11-17 Sun>) 홈페이지에서 배포하는 MacPorts-2.2.1-10.9-Mavericks.pkg 를 받아 설치를 해야 한다. 그전 버전을 지울 필요는 없었다. 몇몇 ports가 깨져있어서 gcc48 같은 것이 바로 안 깔리는데, 지원자에 자원 봉사자들로 이루어진 MacPorts project를 욕할 생각은 없다. 오히려 고마울 뿐이며, py27-scipy 를 깔면 gcc48이 깔린다는 것을 알아낸 능력자 분께도 감사할 따름이다. Clang… Apple과 Google이 만든 compiler라… 이게 얼마나 좋은 지는 내가 평가할 수는 없지만, 나에게는 이 현상이 Apple이 끊임없이 보여주고 있는 지난 OS 지원 미비 혹은 중단 의 연장선으로 비춰진다.


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Footnotes:

1

See Ref. #1.

2

See Ref. #2 and #3.

3

See Ref. #4.

Created: 2013-11-17 Sun 10:36

Emacs 23.4.1 (Org mode 8.0.2)

Validate XHTML 1.0

Thursday, October 31, 2013

OS X Mavericks

OS X Mavericks

OS X Mavericks


;; =================================================
;; εμαcs is ⎋[esc]⌘[meta]⌥[alt]⌃[ctrl]⇧[shift].
;; =================================================

이 문서는 emacs org-mode 로 작성된 글입니다.

Operating System Environments

  • Main- : OS X Mavericks (10.9)
  • Sub- : Debian GNU/Linux Wheezy (7.2)
  • Server: Debian GNU/Linux Squeeze || Lenny
  • Mobile: iOS 7.0.3

<2013-10-22 Tue>, OS X Mavericks(10.9)가 무료로 배포되었다. 10582634304_12faca9d38_z.jpg

다른 곳에서도 많은 사용 후기(?)가 올라오겠지만, 사람들이 주로 안 다루는 것으로 간단히 정리해 보았다.

OS X Mavericks (10.9) 문제점들

iBooks for Mac

가장 기대했던 부분들 중 하나 인데, 간단히 말해서 대~실망이다. iBooks store를 통해서 구입한 ebooks만이 sync 된다. 개인적으로 가지고 있던 epub, pdf, 등은 전혀 sync 되지 않을 뿐더러, 아예 iBooks for Mac에서 불러오는 옵션 자체가 없다. 수동으로 넣으면 들어가긴 하는데, 이러면 다른 iOS devices에서 보던 서적을 이어서 볼 수도 없고, bookmarks도 당연히 연동되지 않는데. 오직 iBooks store를 통해서 구입한 ebooks만이 sync 된다. 이게 뭔가!!!

  • Updated <2013-11-10 Sun>) iBooks 1.0.1로 판올림되면서, 위의 문제들이 완전히 사라졌으며, 처음 기대했던 그대로 완벽히 동작한다.

Mail.app

Apple Support Communities에 올라오지 않는지 전혀 이해가 되지 않는데, Mail에서 email 작성 시 미리 설정해둔 font로 바뀌지 않고 항상 Times font로 고정된다. 웃기는 것은 이렇게 작성된 email을 보낸 후에 MAILBOXES-Sent로 가보면, 또 미리 설정해둔 font로 바뀌어 보인다. 사용 상 문제가 있는 것은 아니지만, 자꾸 짜증을 일으킨다.

  • Updated <2013-11-10 Sun>) 자세하게 테스트해 본 결과, 모든 font가 그런 것은 아니고 특정 font만 자꾸 Times font로 바뀐다. 그리고 Times font는 지울 수도 없다.

잘 동작하는 applications

대부분이 잘 동작하는데, 너무 당연한 것들을 제외하고 간단히 확인해본 것들은 다음과 같다.

Application Description License
Quicksilver Application launcher + Apache
Aquamacs Emacs for OS X GPL
Skim PDF viewer BSD
Keka Compression/Extraction app  
Spellchecker-korean 한글 맞춤법 검사 Mozilla
MacPorts System maintainer BSD
Bibdesk BibTeX frontend BSD
DjView djvu viewer GPL
Growl-Fork Notification  
AppCleaner Application cleaner  
EzPlusForMac 신한은행  
Max Audio converter GPL
LibreOffice Office suite LGPL
Handbrake Video converter  
  • Updated <2013-11-10 Sun>) 추가 확인한 applications은 여기에 따로 Post를 작성했다. -> 보러 가기

MacPorts with Xcode 5.0.1

OS X Mavericks 설치 후 App Store for Mac 에서 모든 updates를 끝내면, Xcode가 5.0.1로 update 된다. 이 버전에서는 Command line tools를 설치하는 방법이 다르다. 설치는 Bash shell (Teminal.app)을 켜서 아래와 같이 실행한다.1

$xcode-select --install

그러면 아래와 같은 창이 나오면 그대로 계속 진행하면 된다.

10583151403_0f330745b7_z.jpg

The image is taken from here.

완료하면 MacPorts는 잘 동작한다.

FYI) Mavericks가 발표된 날은 아니었는데, 현재(<2013-10-30 Wed>) MacPorts Homepage에 따르면 Mavericks도 공식 지원한다.

Epilog

전반적으로 OS X Mavericks로 update 할 동기가 나에게는 좀 부족하다. 특히, iBooks for Mac과 Maps는 … 엉망이다. 아직 바람 입력기, VirtualBox, 등 확인하지 못한 것들도 좀 있고 bugs도 좀 더 잡혀야 할 듯해서 main으로 당분간 Mountain Lion을 유지할 것 같다.

  • Updated <2013-11-10 Sun>) main으로 사용하는 OS도 update를 마쳤다.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Created: 2013-11-10 Sun 16:42

Emacs 23.4.1 (Org mode 8.0.2)

Validate XHTML 1.0

Wednesday, August 1, 2012

OS X Mountain Lion I. : what to do after upgrade

OS X Mountain Lion : 업그레이드 후 다듬기


Operating System Environments

Main : OS X Mountain Lion (10.8)

Sub- : Debian GNU/Linux squeeze (6.0.5)

Server : Debian GNU/Linux lenny or squeeze

Mobile : iPod-touch 4G - iOS 5.1.1



2012년 7월 25일, 기다리고 기다리던 OS X Mountain Lion (10.8)이 Mac App Store를 통해 공개되었다. 가격은 미화로 $19.99, 유로로는 15.99이고, Mac OS X Lion 에서 뿐만 아니라, 내가 썼던 Mac OS X Snow Leopard (10.6.8)에서 바로 업그레이드 가능하다. 독일의 인터넷 상황을 고려해 볼 때, 다운로드 속도도 원활하고, 다운 후 업그레이드 하는데 약 한 시간이면 충분했다. 5일 째 쓰고 있는데 performance도 Snow Leopard 와 차이가 없을 만큼 쾌적하고, 눈에 띄는 버그도 아직 못 봤으며, 자잘한 버그도 아직 크게 보고되지는 상황이다. 특히 사용하는 application 중에 어떤 것이 동작하고, 동작하지 않는지는 roaringapps 가서 직접 검색해 보는 것도 도움이 된다.


Customizing(?)을 좀 해서 쓰는 상황이라 걱정한 부분이 좀 있었는데, 그에 관한 간단한 정리를 해 볼까 한다. 세세한 부분은 다른 블로거들이 너무 많이 다루므로, 주관적으로 중요하다고 생각되는 부분과 내 상황과 관련된 부분만 다루기로 하겠다. 내용은 아래와 같다.

  1. Save As..
  2. FileVault
  3. Quicksilver, Aquamacs Emacs, and X11
  4. MacPorts
  5. 안되는 applications



  • Save As…

Lion은 잘 모르겠고, Snow Leopard 와 크게 달라진 불편한 점TextEdit 이나 Preview 에서 [Save As] 가 바로 활성화 되어 있지 않고 단축키가 바꾸었다는 점이다.


위에서 보듯이 [CMD + Shift + s] 로 할당된 [Duplicate] 가 바로 보이고, [Save As]는 [Opt]을 눌러야 보인다. 이를 해결(?)하는 간단한 방법은 단축키(shortcut)를 바꿔주면 된다.

아래 그림과 같이, System Preferences -> Keyboard -> Keyboard Shortcuts 로 가서 {Application Shortcuts} 에 맨위에 있는 {All Applications}를 선택, 아래 있는 [+] 버튼을 눌러, {Menu Title}에 정확한 명령 이름 (예를 들에, Save As...) 을 적고 그 아래에서 단축키(Shortcut)를 지정하면 된다.(이경우,  [CMD + Shift + s])


그리고 다시 아래 있는 [+] 버튼을 눌러, Duplicate에 [CMD + Shift + Opt + s]를 지정하면, 단축키들도 바뀌고, TextEdit 이나 Preview 에서 아래 그림처럼 원래(Snow Leopard)처럼 쓸 수 있다.



  • FileVault

Snow Leopard에서 FileVault 를 쓰고 있었는데, 아무런 변경 없이 Mountain Lion으로 바로 업그레이드 할 수 있고, 쓰던 그대로 바로 쓸 수도 있다. 새로운 FileVault인 FileVault 2 를 쓰고 싶으면, System Preferences -> Security & Privacy 로 가서 변경하면 FileVault 2 를 쓸 수 있다. Snow Leopard에서 FileVault는 TimeMechine을 쓰는데 약간의 불편함이 있어서 새로운 FileVault 2에 큰 기대를 하고 있는데, 아직 TimeMechine과의 궁합은 제대로 파악하지 못 했다. 조만간 Post를 하나 할 계획이다.



  • Quicksilver, Aquamacs Emacs, and X11

이것들 없이는 아무것도 할 수 없을 정도로 나에게는 중요한 applications인데, 간단히 말해서 큰 문제 없이 동작한다. 특히 Aquamacs Emacs 2.4는 아직까지는 전혀 문제 없이 동작한다.

Quicksilver ß69의 경우 시스템을 껐다 키면 가끔 두 개의 아이콘이 독(Dock) 위에 올라가 있는 버그가 있는데, 이는 Quicksilver ß69를 일단 끄고, 원래 지정해 놓은 Dock 위치 말고, 다른 곳에 생긴 아이콘을 클릭해 없앤 후, 다시 켜서 사용하면 된다. 완전히 64bit로 돌리는 방향으로 가는 중이라, 몇몇 plugins이 동작하지는 않지만, 주요기능 사용에는 문제가 없다. 개발자 측에 따르면 조만간 베타 딱지를 떼고, 정식으로 나올 예정이라고 하니 다음 버전에서는 나아지길 기대한다.

quicksilver news #1

quicksilver news #2

X11의 경우 이미 Snow Leopard에서 깔아 쓰다가 업그레이드 한 경우라도, 바로 쓸 수 없다. Mountain Lion으로 업그레이드 완료 후 X11 을 실행하면, "안되니 새로 깔아 주세요" 비스무리한 말이 뜨고 친절히(?) 관련 web page를 링크 걸려있다. 직접 XQuartz Home Page 에가서 XQuartz 2.7.2를 다운로드 받아 깔아 쓰면 된다.

[XQuartz 2.7.2 다운로드] 바로가기



  • MacPorts

Snow Leopard에서 쓰고 있지 않았다면, Mountain Lion 에서도 사용가능하니, 바로 MacPorts 로 가서 다운로드 받아 쓰면 된다.

[MacPorts 소개 및 간단한 사용법] 지난 Post 보러가기

원래 Snow Leopard에서 MacPorts를 쓰던 경우는, Mountain Lion 업그레이드 후, 

  1. Mac App Store에서 Xcode 4.4를 우선 다운로드해 설치한다.
  2. Xcode 4.4를 실행 후, [CMD+,]로 Preferences를 열어 {Downloads} 아래, {Components} 부분에서 {Command Line Tools}를 설치한다.
  3. 다음을 실행 후 원래 쓰던 대로 사용하면 된다. $sudo port selfupdate


PS) Colored ls 를 coreutils 로 구현한 경우는 port를 upgrade 해 주고,

$sudo port -u upgrade outdated

Terminal 을 켜서, [CMD+,]로 Preferences를 열어 {Settings} -> {Advanced} -> {Declare terminal as} 에서 xterm으로 설정해주면 Snow Leopard에서 구현하던 그대로 동작한다.

[Colored ls] 지난 Post 보러가기


PPS) Xcode 4.4를 깐 후 Snow Leopard에서 쓰던 옛 Xcode를 지우는 방법은 간단(?)하다.

/Developer/Library 로 가보면 uninstall-devtools 라는 이름의 파일이 하나 있는데 이를 실행해 주면 된다.

$sudo /Developer/Library/uninstall-devtools --mode=all

그리고도 남은 /Developer 아래 있는 찌꺼기들은, 내 경우는 그냥 몽땅 trash에 넣고 지워줬다.



  • 안 되는 Applications

Apple이 예고한 대로 rosetta가 더 이상 제공되지 않으므로, ppc에서 돌리던 applications은 돌릴 수 없다. 대표적(?)으로 Mathematica 5.2 같은 것은 돌릴 수 없다. 도무지 이해가 가지 않는 정책이지만… 어쩔 도리가 없다.

Snow Leopard에서 부팅 사운드를 간단히 없애주었던 StarUpSound를 더 이상 쓸 수 없다. startninja 같은 application이 돌아갈 듯 하지만, 깔고 다시 지우면, 원래대로 돌아간다고 떡하니 Home Page에 써있다. 구려서 다른 방법을 알아볼 계획이다.

VirtualBox 4.1.18이 돌아간다고들 하는데, 아직 Oracle에서 공식적인 답변이 없는 상태이고, 나도 시간을 두고 확인해 보지는 못했다.

Tuesday, July 31, 2012

colored ls

Colored ls


옛날 내 Opera Blog에서 가져온 것입니다. 중복된 내용이나, 한 Blog에 필요한 정보를 수집하기 위함임을 밝힙니다.




말이 필요 없다. 내가 지금 사용 중인 환경을 한 번 보자.


보기 괜찮은가? 이것에 한 번 도전해 보자! 

어렵다면 어렵지만 사실 크게 어렵지도 않다. 주로 참고한 웹페이지는 아래와 같다.

http://hocuspokus.net/2008/01/a-better-ls-for-mac-os-x/



천천히 따라해 보자.

준비물 :

  1. macport
  2. your favorite editor


# macport 에 관해서는 지난 blog를 참고하자.

[MacPorts 소개 및 간단한 사용법] 지난 Post 바로가기


첫째, macport로 [coreutils] package를 설치하자.


$sudo port install coreutils +with_default_names

<--- 여기서 “+with_default_names”는 왜 붙여주는지 정확히는 모르겠으나 그냥 하자. 원문을 읽어보면 원래 깔려있는 commands와 새로 깔리는 commands 사이에 중복을 피하기 위함인 듯이 보인다. 시간이 걸린다. 기다리자.


둘째, 몇몇 파일을 손으로 직접 수정해야 하는데 우선 중요한 몇 가지를 확인하자.

Home Directory(~) 안에 있어야 하는 파일들 :

      1. .bashrc
      2. .dir_colors

$ls -la로 확인해 보고 없으면 만들자. 예를 들어 .bashrc가 없으면

$touch ~/.bashrc <--- ~ 는 기본적으로 Home Directory를 의미하는데 만일 모든 유저에게 다 적용하려면 Home Directory(~) 말고, Root(/)에 하자. 즉,

$touch /.bashrc


# 주의 사항 :

---------------------------------------------------------------------------------

보통 ~ 안에 .bash로 시작하는 몇 개의 파일이 있는데, 이를 조금 조정해 주어야한다. 여러 방법이 있지만 내가 한 방법을 보면 다른 응용도 가능할 것으로 믿는다. 

꼭 확인해 봐야 할 것들 : 

“.bash_profile”는 있으면 지우진 말고, editor를 열어 아래와 같이 적어준다.

    if [ -f ~/.bashrc ]; then

       source ~/.bashrc

    fi

아래 그림을 참고하자. 이는 Aquamacs로 본 .bash_profile이다.


추측하건대, .bash로 시작하는 파일들을 부르는 순서가 있는 듯 하다. 위 script는 .bashrc가 있으면 .bash_profile은 무시하고 .bashrc를 source로 쓰라는 말로 보인다.


“.bash_aliases”가 있을 것이다. (물론 없을 수도 있다) 여기에는 보통 자주 쓰는 commands를 간단히 재 지정하여 bash shell에서 쓰고 싶을 때, 보통 여기에 적어 놓는데 그냥 지워 버리고, 이미 사용자가 지정한 aliases가 있다면 .bashrc에 옮겨버리자! 

---------------------------------------------------------------------------------





셋째, 사용자의 favorite editor로 .bashrc를 열어 아래와 비슷(?)하게 적어주자.


# MacPorts

export PATH=/opt/local/libexec/gnubin:/opt/local/bin:/opt/local/sbin:$PATH

# export PATH=/opt/local/bin:/opt/local/sbin:$PATH

export MANPATH=/opt/local/share/man:$MANPATH


# Terminal colours (after installing GNU coreutils)

NM="\[\033[0;38m\]" #means no background and white lines

HI="\[\033[0;37m\]" #change this for letter colors

HII="\[\033[0;31m\]" #change this for letter colors

SI="\[\033[0;36m\]" #this is for the current directory

IN="\[\033[0m\]"


export PS1="$NM[ user_ID $HII@ $SI\w$NM ] $IN"


if [ "$TERM" != "dumb" ]; then

    export LS_OPTIONS='--color=auto'

    eval `dircolors ~/.dir_colors`

fi


# Useful aliases

alias ls='ls $LS_OPTIONS -hF'

# alias ll='ls $LS_OPTIONS -lhF'

# alias l='ls $LS_OPTIONS -lAhF'


제 경우, Aquamacs로 보면 아래와 같다.



여기서 가장 중요한 부분은

alias ls='ls $LS_OPTIONS -hF'

이 곳인데, 다른 필요한 aliases는 아래에 이어서 적어주자. 



넷째, 사용자의 favorite editor로 .dir_colors를 열어 아래와 비슷(?)하게 적어주자.

# Configuration file for dircolors, a utility to help you set the

# LS_COLORS environment variable used by GNU ls with the --color option.


# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the

# slackware version of dircolors) are recognized but ignored.


# Below, there should be one TERM entry for each termtype that is colorizable

TERM linux

TERM linux-c

TERM mach-color

TERM console

TERM con132x25

TERM con132x30

TERM con132x43

TERM con132x60

TERM con80x25

TERM con80x28

TERM con80x30

TERM con80x43

TERM con80x50

TERM con80x60

TERM xterm

TERM xterm-color

TERM xterm-debian

TERM rxvt

TERM screen

TERM screen-w

TERM vt100


# Below are the color init strings for the basic file types. A color init

# string consists of one or more of the following numeric codes:

# Attribute codes:

# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed

# Text color codes:

# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white

# Background color codes:

# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white

NORMAL 00   # global default, although everything should be something.

FILE 00     # normal file

DIR 00;36   # directory

LINK 01;37  # symbolic link.  (If you set this to 'target' instead of a

            # numerical value, the color is as for the file pointed to.)

FIFO 40;33  # pipe

SOCK 01;35  # socket

DOOR 01;35  # door

BLK 40;33;01    # block device driver

CHR 40;33;01    # character device driver

ORPHAN 40;31;01 # symlink to nonexistent file


# This is for files with execute permission:

EXEC 01;35


# List any file extensions like '.gz' or '.tar' that you would like ls

# to colorize below. Put the extension, a space, and the color init string.

# (and any comments you want to add after a '#')


# If you use DOS-style suffixes, you may want to uncomment the following:

#.cmd 01;32 # executables (bright green)

#.exe 01;32

#.com 01;32

#.btm 01;32

#.bat 01;32


.tar 01;31 # archives or compressed (bright red)

.tgz 01;31

.arj 01;31

.taz 01;31

.lzh 01;31

.zip 01;31

.z   01;31

.Z   01;31

.gz  01;31

.bz2 01;31

.deb 01;31

.rpm 01;31

.jar 01;31

.dmg 01;31


# image formats

.jpg 01;35

.png 01;35

.gif 01;35

.bmp 01;35

.ppm 01;35

.tga 01;35

.xbm 01;35

.xpm 01;35

.tif 01;35

.mpg 01;35

.avi 01;35

.fli 01;35

.gl 01;35

.dl 01;35


# source code files

# .pl 00;33

# .PL 00;33

# .pm 00;33

# .tt 00;33

# .yml 00;33

# .sql 00;33

# .html 00;33

# .css 00;33

# .js 00;33

.m 00;33

.tex 00;33

.bib 00;33

.f 00;33

.c 00;33


일부분을 보면 아래와 같다.


이는 잘 알려진 확장자를 가진 파일들의 색깔을 넣어주는 것인데, 어떻게 수정하냐 하면, 그림 계열들에 지금 pdf가 빠져 있는데 이를 넣고 싶으면

.pdf 01;35

를 첨가해 주면 된다. 여기서 01;35가 색깔을 지칭하게 되는데 위에 jpg등을 이미 01;35로 지정했으므로 pdf도 이 색깔로 맞춰주었다. 마찬가지로 자주 쓰는 확장자를 한 계열을 정해 지정해 놓으면 그 색깔로 ls 실행 시 보여 지게 된다. 

# 주의사항 :

---------------------------------------------------------------------------------

이때 색깔은 bash shell(terminal)의 바탕색과 겹치어 보여지게 됨을 주의 하자. 맨 위의 첨부한 bash shell에서 실제로 보이는 색을 보면 황토색이 있는데, 이는 사실 노란색으로 지정한 것인데 바탕이 검은색이라 그리 보이는 것이다. 

뭔 숫자가 무슨 색인지는 .dir_colors안에 쓰여 있으니, 몇 가지를 시도해 보면 확인 가능하다. 이때는 bash shell을 완전히 종료 후, 재 시작해야 적용된다.


---------------------------------------------------------------------------------






여기까지 하면, 거의(?) 잘 적용되어야 한다. 이제 bash shell(terminal)을 완전 종료하고 재 시작해 보자. 그리고 ls를 쳐 보면 색깔이 잘 지정되어 나옴을 알 수 있다.


# 마지막 주의사항 :

---------------------------------------------------------------------------------


1) 위에 .bashrc에 써야 하는 사항 중에 아래와 같은 부분이 있다.

# MacPorts

export PATH=/opt/local/libexec/gnubin:/opt/local/bin:/opt/local/sbin:$PATH

# export PATH=/opt/local/bin:/opt/local/sbin:$PATH

export MANPATH=/opt/local/share/man:$MANPATH

가끔 위의 방법으로 했는데 안되는 경우가 있는데, 그럼 위의 첫째 줄과 둘째 줄을 바꿔주자. 

# MacPorts

# export PATH=/opt/local/libexec/gnubin:/opt/local/bin:/opt/local/sbin:$PATH

export PATH=/opt/local/bin:/opt/local/sbin:$PATH

export MANPATH=/opt/local/share/man:$MANPATH

경우에 따라 macport로 깔리는 coreutils package의 경로가 다른 경우가 있는데 이를 변경하는 것이다.


2) 위에 .bashrc에 써야 하는 사항 중에 아래와 같은 부분이 있다.

export PS1="$NM[ user_ID $HII@ $SI\w$NM ] $IN"

위와 그대로 했다면, bash shell에서 맨 상단에 첨부한 그림에서 회색칠로 안 보이게 한 부분에 “user_ID” 가 찍히고 보이게 된다. 즉 프롬프트에서

user_ID @ path of the current directory $

으로 보이게 되는데 본인이 보이게 하고 싶은 글귀를 user_ID에 그냥 적어 넣거나 아래 웹페이지를 참고하자.


https://wiki.archlinux.org/index.php/Color_Bash_Prompt




한글로 뭔가 정보를 주고 싶었는데 이게 내가 하고도 좀 복잡해 보이긴 한다. 충분한 설명이 못 될까 죄송스럽다.

기본 원리를 다시 간단히 정리하면, macport로 coreutils를 깔고 몇 가지 규칙을 조금(?!) 이해한 후 적용하는 것이 사실 다이다. 

Sunday, March 11, 2012

MacPorts : 안 쓰는 Port 지우기

MacPorts : 안 쓰는 Port 지우기

Operating System Environments
Main : Mac OS X SnowLeopard (10.6.8) parallel with Debian GNU/Linux squeeze (6.0.4) in VirtualBox
Sub- : Kubuntu Lucid-Lynx (10.04 LTS)
Server : Debian GNU/Linux lenny or squeeze
Mobile : iPod-touch 4G - iOS 5.0.1


MacPorts는 BSD License의 Apple의 Mac OS X 와 Darwin OS 용 package management system 이다. 간단히 Debian GNU/Linux 와 그 페밀리에서의 dpkg 와 apt 같은 것으로 생각하면 된다.
간단한 사용법은 지난 Post를 참고하자.

이번에는 지난번에 다루지 않은 안 쓰는 Port 지우기를 알아보자.
먼저 어떤 packages 가 깔렸는지 보면, 
$sudo port selfupdate
$port installed

각 package 오른 쪽에 괄호로 (active) 혹은 (inactive) 가 쓰여있는 것을 확인할 수 있다. 나는 이미 지워서 모두 (active)가 적혀 있다. 이제 이 (inactive)로 된 package를 모두 지우자.
$sudo port -f uninstall inactive

MacPorts 사용 중 (install, upgrade, 등) 받은 임시 파일들도 지우자.
$sudo port -f clean --all all

MacPorts로 깔린 용량은 아래로 볼 수 있다. 지우기 전과 후에 실행해, 그 차이를 볼 때 쓰자.
$du -sh /opt/

Wednesday, July 27, 2011

[Mac Life - 01] MacPorts

공식홈페이지

Mac light user로서 이게 뭐 하는 건지 정확히 규명하기는 쉽지않다 Wikipedia를 참조하려 해도 영문 페이지조차 없다니… 홈페이지에서 제공하는 전문과 그 동안의 경험에 비추어 보면, 간단히 command line으로 install, uninstall, upgrade, 등을 하게 해주는 Mac 전용 Open source project이다. Mac에 종속되어 있고 Xcode 또한 초기 인스톨 과정에서 요구하는 것으로만 봐도(Xcodeversion4부터 개발자를 제외하고는 유료다), 완전한 자유에 대한 권리를 추구하는 (이 정도로 간단히 얘기할 수 있는 부분은 아니다) GNU Project와는 성격과는 다르고 Richard Stallman 씨 같은 철학도 내세우지는 않지만, Mac을 조금 더 GNU/Linux처럼(?) 써보게 해주는, 맥사용자 입장에서는 아주 고맙기 그지없는 또 하나의 Open Source Project이다.

맥을 쓰다 보면 아무래도 소프트웨어가 수에서 밀린다. 뭔가를 해주는 오직 한 개의 소프트웨어만 존재 한다거나 아예 찾을 수가 없는 식이다. 물론 그 한 개가 (존재하는 경우) 강력한 경우가 대부분이지만 조금 더 들어가자면…
예를 들어, 동영상 재생은 VLC (movist는 개발자가 휴업 중으로 보이고, 곰은 윈도우에서부터 격은 더러운 광고 도배에 너무 진이…), DVD 추출 및 인코딩은 Handbrake, 각종 음악 파일 변환은 Max, office관련은 OpenOffice.org, djvu viewerDjView, epub 제작은 Sigil, 등…(공교롭게도? 이들 모두 GNU General Public License를 가지고 있다!!!) 이들 모두 막강하여 하나만 있으면 다른 Applications을 또 찾을 필요가 없다.(VLC 한글 자막은 손 좀 봐야 한다) 그러나 어디 필요한 게 이뿐이랴?!
오해를 피하기 위해 여기서 하나 확실히 해둘 것은 위에 언급한 것같은 ApplicationsMacPorts로 얻을 수는 없다. 그럼 이걸로 뭘 하냐? 내가 이 녀석으로 얻은 것들을 보면 이 놈이 어떤 놈인지 분명해질 것이라 믿는다.

GCC Compiler Package, ps2eps, grace(xmgrace), python27, etc.

그렇다 MacPorts는 이런 것들을 깔끔하게 까는 최선의 방법인 것이다. 가장 유명한 프로그래밍 언어인 C와 내 주종목인 fortran을 가지고 얘기해 보자. xcode packageInstall DVD에 함께 주어지는데(Snow Leopard경우) 이를 깔면 자동으로 gcc compiler Apple version을 깐다. 왜 굳이 Apple version으로 명시한지는
$man gcc
terminal에서 쳐보면 자명하다. C/C++는 이거면 충분하다. 하지만 본래 GNU에서 제공하는 통합 패키지에는 fortran compiler도 당연히 들어있다. 근데 xcode에서 제공하는 것에는 빠져있다. 또한 upgrade는 어찌할텐가? 일일이 어디 있는지 뒤져서, 기억해 놓고 terminal에서 확실치도 않은 노가다를 시도할텐가? 이를 간단히, 후에도 유용하게 극복하는 방법이 바로 MacPorts이다.

xcode를 깔고, MacPorts를 홈페이지에서 다운받아 깔자.
간단한 사용 방법은 다음과 같다.

$port [-option] [action] [target]
[action]으로는 selfupdate, outdated, search, info, install, installed, uninstall등이 있는데 자세한 사항은 꼭
$man port
로 확인해 보자. 인스톨과 관련된 action을 실행할 때는 필요시 sudo 를 앞에 붙여주자.
Gcc version 4.5를 검색해서 설치하는 과정을 예로 들면,

$sudo port selfupdate <--- port 자체를 업데이트, 항상 처음에 실행하는 것이 좋아 보인다.
$port outdated <--- 이미 깐 package중에 업데이트가 필요한 것이 있는지 확인
$sudo port -u upgrade outdated <--- 업데이트할 게 있으면 하고 없으면 패스
$port search gcc45 <--- gcc45라는 package가 있는지 검색
$sudo port install gcc45 <--- gcc45를 설치, 시간이 꽤 걸린다. 기다리자.

이 순서로 하면 gcc version 4.5가 설치된다. 제대로 설치되었는지 확인은
$port installed <--- 설치된 모든 package를 보여준다.

지우고 싶으면,
$sudo port uninstall gcc45

이 정도로 정리할 수 있겠다. 아래는 실제 terminal window에서 보여지는 것이다.