Mac os 터미널에서 루비 실행시

462 views
Skip to first unread message

개발팀장

unread,
Feb 23, 2010, 9:24:42 PM2/23/10
to 한국 루비 사용자 모임
Mac os 터미널에서 루비 실행시 소스코드 작성할때 한글은 입력이 안되네요
혹시 해결 방법 아시는 분??

황용대

unread,
Feb 23, 2010, 9:34:13 PM2/23/10
to rub...@googlegroups.com
터미널 캐릭터셋 문제일거 같은데요
저는 iterm 쓰면서 터미널 인코딩을 UTF-8로 해놓고
배쉬쉘의 LANG 을 ko_KR.utf-8 로 해서 쓰고 있습니다.

2010/2/24 개발팀장 <ham...@zerople.com>

Mac os 터미널에서 루비 실행시 소스코드 작성할때 한글은 입력이 안되네요
혹시 해결 방법 아시는 분??



--
백일몽입니다.

개발팀장

unread,
Feb 23, 2010, 9:38:19 PM2/23/10
to 한국 루비 사용자 모임
저도 iterm 을 쓰고 있습니다. ㅎㅎ

배쉬셀의 LANG를 변경 하는 방법을 좀 알려주세요^^

제가 완전 초보라 ㅎㅎ

그리고 답변 감사 드립니다.

Moru

unread,
Feb 23, 2010, 9:40:30 PM2/23/10
to rub...@googlegroups.com
MacOS 비영어권 캐릭터셋 문제 여전한가보군요...
보나마나 X11도 그대로겠네요...

제 기억대로라면,
표준으로 들어있는 terminal이라면 terminal 실행후 command + i로 info 창을 띄웁니다.
거기서 '비ascii문자를 이스케이프...' 어쩌고 하는 옵션을 체크하면 대충 문제가 해결되었던 것 같습니다.


2010/2/24 황용대 <sta...@gmail.com>:

Moru

unread,
Feb 23, 2010, 9:43:58 PM2/23/10
to rub...@googlegroups.com
$ export LANG=ko_KR.UTF-8

하시면 됩니다. 자동으로 로드하려면 $HOME/.bashrc 파일 안에 똑같은 내용을 적어두시면 됩니다.
버젼 10.3 이상이시라면 .bashrc만 설정해도 문제없을 겁니다.

확인하실 땐

$ echo $LANG

하시면 될 것 같구요.

--
Moru

2010/2/24 개발팀장 <ham...@zerople.com>:

황용대

unread,
Feb 23, 2010, 9:46:11 PM2/23/10
to rub...@googlegroups.com
터미널에서 env 로 LANG 변수의 값을 확인해보시고
euc-kr 같은 것으로 잡혀 있다면 .bashrc 나 .profile 에 변수 셋팅을 추가해놓으세요.
export LANG=ko_KR.utf-8

그런데 지금 확인해보니 스노우레오파드에서 한국어로 설정해놓으면
기본으로 ko_KR.utf-8 로 되는거 같은데요.

레오파드 쓸때 그랬거든요.

2010/2/24 개발팀장 <ham...@zerople.com>



--
백일몽입니다.

개발팀장

unread,
Feb 23, 2010, 9:46:56 PM2/23/10
to 한국 루비 사용자 모임
답변 정말 감사 드립니다.

해보고 알려 드리겠습니다. ^^

개발팀장

unread,
Feb 23, 2010, 10:16:41 PM2/23/10
to 한국 루비 사용자 모임
네 기본적으로 셋팅 되어 있네요 ㅎㅎ

vi 에서는 한글이 먹는데, ruby의 irb를 실행 시키고 한글 입력 하려 하니 계속 제자리에서 썼다 지웠다를 반복 하네요
ㅎㅎ

답변 정말 감사드립니다.

다른 방법을 찾아봐야 하나봐요 ㅎㅎ

황용대

unread,
Feb 23, 2010, 10:41:30 PM2/23/10
to rub...@googlegroups.com
아... 이건 저도 그렇더라고요.
irb나 레일즈 콘솔 쓸 때 한글이 안 들어가서 저도 좀 답답.

2010/2/24 개발팀장 <ham...@zerople.com>



--
백일몽입니다.

개발팀장

unread,
Feb 23, 2010, 10:44:07 PM2/23/10
to 한국 루비 사용자 모임
ㅎㅎ
답변 정말 감사 드립니다.

먼가 다른 방법이 있을지 찾아봐야겠습니다.

혹시 찾으면 알려드릴께요 ㅎㅎ

Moru

unread,
Feb 23, 2010, 10:44:49 PM2/23/10
to rub...@googlegroups.com
이건 terminal이 아니라 ruby ext 문제같네요.
ruby ext중 iconv와 readline이 제대로 설치되어있지 않으면 잔잔한(?) 문제가 발생하곤 합니다.
ruby interpreter가 ascii character set을 표현 가능한 인코딩을 채용하고 있기 때문에 저 두 개의
ext에 꽤 의존하는 편인 것 같습니다. ext에 있을만한 성격이 아닌데 왜 저기에 있는지는 의문입니다만...

일단 readline은 제쳐두고 ext/iconv가 제대로 설치되었는지 확인해 주세요.

--
Moru

2010/2/24 개발팀장 <ham...@zerople.com>:

황용대

unread,
Feb 23, 2010, 10:51:08 PM2/23/10
to rub...@googlegroups.com
macport 로 설치한 루비1.9 의 콘솔에서는 한글 입력이 잘 되는걸로 보아
맥에 기본으로 깔려 있는 루비 1.8이 문제가 있나 보네요.

2010/2/24 Moru <lat...@gmail.com>



--
백일몽입니다.

개발팀장

unread,
Feb 23, 2010, 10:53:05 PM2/23/10
to 한국 루비 사용자 모임
아.. 그렇다면 1.9를 설치 해야겠네요

감사 합니다.

개발팀장

unread,
Feb 23, 2010, 10:53:35 PM2/23/10
to 한국 루비 사용자 모임
ㅋㅋ 제가 초보라 잘 이해 하지 못했습니다.

답변 감사 드립니다.

ㅎㅎ

황용대

unread,
Feb 23, 2010, 10:55:25 PM2/23/10
to rub...@googlegroups.com
1.9는 실제 사용에 문제가 있을수 있으니
macport 로 루비1.8을 설치해보세요.
관련 문서는 구글링 해보면 좀 나올겁니다.
손봐야 하는 부분이 좀 있는걸로 알고 있어요.

2010/2/24 개발팀장 <ham...@zerople.com>



--
백일몽입니다.

Moru

unread,
Feb 23, 2010, 11:11:41 PM2/23/10
to rub...@googlegroups.com
1. 1.9로 이동시
소스코드를 기준으로 설명드린 것이니 나중에 한 번 살펴보시면 금방 아실 수 있을 겁니다.
그리고 1.9는 너무 많은 변화(String Class의 Implement가 다시 이루어졌고, yarv가 기본
interpreter로 도입되었습니다)로 아직까지는 매우 불안정한 상황입니다. 별로 추천드리고 싶지는 않네요. 그래도
쓰시겠다면 release note는 꼭 읽어보시라고 말씀드리고 싶네요. 밑에 일부 변화된 내용을 살짝 추가해드립니다.

* String class의 인코딩 변경 : 기본적으로 Unicode셋을 지원하도록 변경됨. 시스템에 의존적이나 대부분의 경우
Unicode 호환성을 지닌 character set이 내부적으로 지정됨. 고로 더 이상 jcode를 include할 필요가
없어짐.
* String class의 인코딩 변경으로 일부 method의 사양이 변경됨. each_byte, each_char 참조.
* 일부 문법이 추가됨:
test = 'abc'
+ 'def'
+ 'ghi'
* MRI대신 yarv가 도입됨: MRI는 느리다라는 의견이 많았기에...


2. 1.8을 유지
1.8 설치하실 때 macport를 이용하셨다면 일부 ext만 추가해서 설치하는 것도 가능합니다. 어차피 ruby
environment를 참고해서 설치가 이루어지기에 site_ruby밑에 알아서 깔립니다. 하지만 mac os에 탑재된 일부
lib 중에 ruby에서 요구하는 것과 다른 것들이 좀 있어서 ext 설치할 때 좀 삽질을 해야할 겁니다.

ruby의 경우 update나 patch가 좀 잦은 편입니다. security관련 patch가 포함되는 경우도 많으니
되도록이면 macport보다는 직접 컴파일해서 쓰는 걸 추천드립니다.

황용대

unread,
Feb 24, 2010, 12:33:17 AM2/24/10
to rub...@googlegroups.com
생각난 김에 1.8을 소스 설치했지만
콘솔에서 한글 안 먹는건 여전하네요. 끄응...

2010/2/24 Moru <lat...@gmail.com>



--
백일몽입니다.

Sangmin Ryu

unread,
Feb 24, 2010, 1:05:24 AM2/24/10
to rub...@googlegroups.com
전 예전부터 잘되서 모르고 있었는데, 무슨 문제인가요?

macports ruby 1.8.7
mac10.6.2
en_US.UTF-8

입니다.

2010/2/23 황용대 <sta...@gmail.com>:

--
http://neocoin.net

황용대

unread,
Feb 24, 2010, 1:18:25 AM2/24/10
to rub...@googlegroups.com
irb 나 레일즈 콘솔에서 한글 입력이 안 되는 문제가 있어서요.
한글을 입력해도 그냥 씹어버리고 커서가 진행이 안 된답니다.

2010/2/24 Sangmin Ryu <neo...@gmail.com>



--
백일몽입니다.

Sangmin Ryu

unread,
Feb 24, 2010, 1:23:28 AM2/24/10
to rub...@googlegroups.com
이전에도 썼지만 전 기본 터미널 + macports ruby 1.8.7 patch 174를 씁니다.
os는 영문 로케일이구요.

어떻게 하면 문제가 재현할수 있나요?
irb, terminal 모두 동작합니다.

편집은 vim에서 합니다.

ex
irb(main):004:0* a = "안녕"
=> "\354\225\210\353\205\225"
irb(main):005:0> a
=> "\354\225\210\353\205\225"
irb(main):006:0> puts a
안녕
=> nil
irb(main):007:0> neomac:~ neocoin$ ruby --version
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10]

2010/2/23 황용대 <sta...@gmail.com>:

--
http://neocoin.net

Moru

unread,
Feb 24, 2010, 1:27:17 AM2/24/10
to rub...@googlegroups.com
혹시 ruby-1.8..x/ext/iconv 는 설치하셨나요?
OpenSolaris에서도 src 설치시 비슷한 상황이 발생합니다. 범인은 libconv...더군요. ruby에서 요구하는
사양과 달라서 문제가 발생하는 것이었습니다.

ext 한 번 설치해보시고 증상이 또 나타나는지 알려주시겠어요?

--
Moru

2010/2/24 황용대 <sta...@gmail.com>:

Moru

unread,
Feb 24, 2010, 1:29:57 AM2/24/10
to rub...@googlegroups.com
아, 참고로 ruby는 intern / extern으로 나누어서 인코딩을 처리합니다.
결론만 말씀드리면 os locale 때문에 irb에서 문자가 안먹힌다라거나 하는 문제는 locale 때문에 발생하지는 않습니다.

terminal emulator 자체가 ascii character set 이외의 문자를 거부하는 경우(mac os의
x11처럼) 이외에는 locale에 관계없이 동작해야 정상입니다.

--
Moru

2010/2/24 Moru <lat...@gmail.com>:

개발팀장

unread,
Feb 24, 2010, 1:37:13 AM2/24/10
to 한국 루비 사용자 모임
Last login: Wed Feb 24 15:31:37 on ttys000
[hampi2@hampi2Macui-Mac-Pro ~]$ irb
>> puts "\355\225\234\352\270\200"
한글
=> nil
>>

저는 이렇게 되네요... 한글을 쓰면 숫자로 변환 되었다가 Print되기는 하네요

이렇게 하려고 기본 터미널 환경설정에서 설정 > 고급 => 바 ASCII 입력취소 라는거 체크 했습니다. 전에 Moru 님이 말
씀 하신것 처럼

그렇게 하니깐 결국 한글로 쓴 값은 보이지 않으나 출력은 되었다는

On Feb 24, 3:23 pm, Sangmin Ryu <neoc...@gmail.com> wrote:
> 이전에도 썼지만 전 기본 터미널 + macports ruby 1.8.7 patch 174를 씁니다.
> os는 영문 로케일이구요.
>
> 어떻게 하면 문제가 재현할수 있나요?
> irb, terminal 모두 동작합니다.
>
> 편집은 vim에서 합니다.
>
> ex
> irb(main):004:0* a = "안녕"
> => "\354\225\210\353\205\225"
> irb(main):005:0> a
> => "\354\225\210\353\205\225"
> irb(main):006:0> puts a
> 안녕
> => nil
> irb(main):007:0> neomac:~ neocoin$ ruby --version
> ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10]
>
> 2010/2/23 황용대 <sta...@gmail.com>:
>
>
>
> > irb 나 레일즈 콘솔에서 한글 입력이 안 되는 문제가 있어서요.
> > 한글을 입력해도 그냥 씹어버리고 커서가 진행이 안 된답니다.
>

> > 2010/2/24 Sangmin Ryu <neoc...@gmail.com>

황용대

unread,
Feb 24, 2010, 1:47:55 AM2/24/10
to rub...@googlegroups.com
유닉스 머신에서 소스로 설치할 경우
iconv도 기본으로 들어가지 않나요?
irb에서 require 'iconv' 할 경우 정상적으로 동작합니다.

2010/2/24 Moru <lat...@gmail.com>



--
백일몽입니다.

Sangmin Ryu

unread,
Feb 24, 2010, 1:48:31 AM2/24/10
to rub...@googlegroups.com
그게 정상이지 않나요?
ruby 1.8 에서는 문자를 바이트 처리하기 때문에 그렇게 출력되는걸로 알고 있었는데, utf8 변환되어 unicode 로
들어갈테니 그렇게 될텐데요.

1.9에서는 irb 역시 utf 문자 처리가 되어 있는 관계로 잘되네요.

neomac:~ neocoin$ irb1.9
irb(main):001:0> a = "한글"
=> "한글"
irb(main):002:0>

1.9가 일반화(?) 되면 정말 문자열 걱정은 덜게 되는건지 :)

2010/2/23 개발팀장 <ham...@zerople.com>:

--
http://neocoin.net

Moru

unread,
Feb 24, 2010, 1:53:00 AM2/24/10
to rub...@googlegroups.com
자꾸 반복해서 죄송합니다.

>> puts "\355\225\234\352\270\200"

이렇게 뜨는 게 ext/iconv 활성화가 안되어서 그렇습니다. 설치만 제대로 되면 편하게 프로그래밍 하실 수 있는데 제가 다 답답하네요.
간만에 잠들어 있는 맥을 깨워봐야겠습니다.

Moru

unread,
Feb 24, 2010, 2:05:16 AM2/24/10
to rub...@googlegroups.com
ext/iconv라고 자꾸 반복하는 건 interpreter에서 인코딩 처리할 때 이 부분을 의존하기 때문입니다.
irb에서 비 ascii char set이 제대로 입력 안된다라는 건 unicode 처리가 자체적으로 지원되는 1.9 이전
버젼까지만 해당되는 이야기이기도 하죠.

ext/iconv가 제대로 설치가 되었는지 확인하는 방법은 문자를 입력하는 것 외에도 bash에서 지원하는 emacs key
binding이 제대로 먹히는지 넣어보는 것도 또 하나의 방법입니다. 이유는 잘 모르겠지만 ext/iconv가 설치가 안된
상태에서는 emacs key binding도 제대로 입력이 되지 않습니다. C-h 같은 걸 넣어보시면 알 수 있습니다.

마지막으로 source를 컴파일하셨을 경우(macport가 아닌) ext 밑에 있는 애들은 별도로 확인할 필요가 있습니다.
ext에 있는 애들은 설치할 os에 들어있지 않을 가능성이 있는 lib를 참조하고 있습니다. 말그대로 extension입니다.
실례로 많이들 알고 계시는 rails의 경우도 ext/openssl이 설치되어있지 않을 경우 에러를 뱉어냅니다. ruby
core와는 별도의 것입니다.

hampi2

unread,
Feb 24, 2010, 2:09:15 AM2/24/10
to rub...@googlegroups.com
흠.. 그렇다면 죄송한데요


ext/iconv 를 활성화 하는 방법을 좀 알려주세요.

제가 잘 몰라서요~~


2010. 2. 24., 오후 4:05, Moru 작성:

황용대

unread,
Feb 24, 2010, 2:17:08 AM2/24/10
to rub...@googlegroups.com
configure 후에
make; make install 하는데
install-ext 룰도 있네요. 오호
make install-ext 하면 익스텐션이 설치되는 것 같습니다.

http://redmine.ruby-lang.org/wiki/8/DeveloperHowto


2010/2/24 hampi2 <ham...@zerople.com>
흠.. 그렇다면 죄송한데요


ext/iconv 를 활성화 하는 방법을 좀 알려주세요.

제가 잘 몰라서요~~


2010. 2. 24., 오후 4:05, Moru 작성:


ext/iconv라고 자꾸 반복하는 건 interpreter에서 인코딩 처리할 때 이 부분을 의존하기 때문입니다.

irb에서 비 ascii char set이 제대로 입력 안된다라는 건 unicode 처리가 자체적으로 지원되는 1.9 이전
버젼까지만 해당되는 이야기이기도 하죠.

ext/iconv가 제대로 설치가 되었는지 확인하는 방법은 문자를 입력하는 것 외에도 bash에서 지원하는 emacs key
binding이 제대로 먹히는지 넣어보는 것도 또 하나의 방법입니다. 이유는 잘 모르겠지만 ext/iconv가 설치가 안된
상태에서는 emacs key binding도 제대로 입력이 되지 않습니다. C-h 같은 걸 넣어보시면 알 수 있습니다.

마지막으로 source를 컴파일하셨을 경우(macport가 아닌) ext 밑에 있는 애들은 별도로 확인할 필요가 있습니다.
ext에 있는 애들은 설치할 os에 들어있지 않을 가능성이 있는 lib를 참조하고 있습니다. 말그대로 extension입니다.
실례로 많이들 알고 계시는 rails의 경우도 ext/openssl이 설치되어있지 않을 경우 에러를 뱉어냅니다. ruby

core와는 별도의 것입니다.

--
Moru



2010/2/24 황용대 <sta...@gmail.com>:
유닉스 머신에서 소스로 설치할 경우
iconv도 기본으로 들어가지 않나요?
irb에서 require 'iconv' 할 경우 정상적으로 동작합니다.

2010/2/24 Moru <lat...@gmail.com>

아, 참고로 ruby는 intern / extern으로 나누어서 인코딩을 처리합니다.
결론만 말씀드리면 os locale 때문에 irb에서 문자가 안먹힌다라거나 하는 문제는 locale 때문에 발생하지는 않습니다.


terminal emulator 자체가 ascii character set 이외의 문자를 거부하는 경우(mac os의
x11처럼) 이외에는 locale에 관계없이 동작해야 정상입니다.

--
Moru



2010/2/24 Moru <lat...@gmail.com>:
혹시 ruby-1.8..x/ext/iconv 는 설치하셨나요?
OpenSolaris에서도 src 설치시 비슷한 상황이 발생합니다. 범인은 libconv...더군요. ruby에서 요구하는
사양과 달라서 문제가 발생하는 것이었습니다.

ext 한 번 설치해보시고 증상이 또 나타나는지 알려주시겠어요?

--
Moru



2010/2/24 황용대 <sta...@gmail.com>:
생각난 김에 1.8을 소스 설치했지만
콘솔에서 한글 안 먹는건 여전하네요. 끄응...

2010/2/24 Moru <lat...@gmail.com>

1. 1.9로 이동시
소스코드를 기준으로 설명드린 것이니 나중에 한 번 살펴보시면 금방 아실 수 있을 겁니다.
그리고 1.9는 너무 많은 변화(String Class의 Implement가 다시 이루어졌고, yarv가 기본
interpreter로 도입되었습니다)로 아직까지는 매우 불안정한 상황입니다. 별로 추천드리고 싶지는 않네요. 그래도
쓰시겠다면 release note는 꼭 읽어보시라고 말씀드리고 싶네요. 밑에 일부 변화된 내용을 살짝 추가해드립니다.


* String class의 인코딩 변경 : 기본적으로 Unicode셋을 지원하도록 변경됨. 시스템에 의존적이나 대부분의 경우
Unicode 호환성을 지닌 character set이 내부적으로 지정됨. 고로 더 이상 jcode를 include할 필요가
없어짐.
* String class의 인코딩 변경으로 일부 method의 사양이 변경됨. each_byte, each_char 참조.
* 일부 문법이 추가됨:
 test = 'abc'
  + 'def'
  + 'ghi'
* MRI대신 yarv가 도입됨: MRI는 느리다라는 의견이 많았기에...


2. 1.8을 유지
1.8 설치하실 때 macport를 이용하셨다면 일부 ext만 추가해서 설치하는 것도 가능합니다. 어차피 ruby

environment를 참고해서 설치가 이루어지기에 site_ruby밑에 알아서 깔립니다. 하지만 mac os에 탑재된 일부
lib 중에 ruby에서 요구하는 것과 다른 것들이 좀 있어서 ext 설치할 때 좀 삽질을 해야할 겁니다.

ruby의 경우 update나 patch가 좀 잦은 편입니다. security관련 patch가 포함되는 경우도 많으니

되도록이면 macport보다는 직접 컴파일해서 쓰는 걸 추천드립니다.

--
Moru



2010/2/24 개발팀장 <ham...@zerople.com>:
ㅋㅋ 제가 초보라 잘 이해 하지 못했습니다.

답변 감사 드립니다.

ㅎㅎ

On Feb 24, 12:44 pm, Moru <lat...@gmail.com> wrote:
이건 terminal이 아니라 ruby ext 문제같네요.
ruby ext중 iconv와 readline이 제대로 설치되어있지 않으면 잔잔한(?) 문제가 발생하곤 합니다.

ruby interpreter가 ascii character set을 표현 가능한 인코딩을 채용하고 있기 때문에 저 두
개의
ext에 꽤 의존하는 편인 것 같습니다. ext에 있을만한 성격이 아닌데 왜 저기에 있는지는 의문입니다만...

일단 readline은 제쳐두고 ext/iconv가 제대로 설치되었는지 확인해 주세요.


--
Moru

2010/2/24 개발팀장 <ham...@zerople.com>:

네 기본적으로 셋팅 되어 있네요 ㅎㅎ

vi  에서는 한글이 먹는데, ruby의 irb를 실행 시키고 한글 입력 하려 하니 계속 제자리에서 썼다 지웠다를
반복
하네요
ㅎㅎ

답변 정말 감사드립니다.

다른 방법을 찾아봐야 하나봐요 ㅎㅎ

On Feb 24, 11:46 am, 황용대 <sta...@gmail.com> wrote:
터미널에서 env 로 LANG 변수의 값을 확인해보시고
euc-kr 같은 것으로 잡혀 있다면 .bashrc 나 .profile 에 변수 셋팅을 추가해놓으세요.
export LANG=ko_KR.utf-8

그런데 지금 확인해보니 스노우레오파드에서 한국어로 설정해놓으면
기본으로 ko_KR.utf-8 로 되는거 같은데요.

레오파드 쓸때 그랬거든요.

2010/2/24 개발팀장 <ham...@zerople.com>

저도 iterm 을 쓰고 있습니다. ㅎㅎ

배쉬셀의 LANG를 변경 하는 방법을 좀 알려주세요^^

제가 완전 초보라 ㅎㅎ

그리고 답변 감사 드립니다.

On Feb 24, 11:34 am, 황용대 <sta...@gmail.com> wrote:
터미널 캐릭터셋 문제일거 같은데요
저는 iterm 쓰면서 터미널 인코딩을 UTF-8로 해놓고
배쉬쉘의 LANG 을 ko_KR.utf-8 로 해서 쓰고 있습니다.

2010/2/24 개발팀장 <ham...@zerople.com>

Mac os 터미널에서 루비 실행시 소스코드 작성할때 한글은 입력이 안되네요

혹시 해결 방법 아시는 분??

--
백일몽입니다.

--
백일몽입니다.



--
백일몽입니다.





--
백일몽입니다.





--
백일몽입니다.

개발팀장

unread,
Feb 24, 2010, 2:20:46 AM2/24/10
to 한국 루비 사용자 모임
전 지금 맥에 기본 탑재되어 있는 루비를 사용하는중인데요

ext/iconv를 활성화 하는 방법을 좀 알려주세요

죄송합니다. 루비를 처음 접해 보는거라 모르는게 많습니다.

On Feb 24, 12:44 pm, Moru <lat...@gmail.com> wrote:

황용대

unread,
Feb 24, 2010, 2:41:07 AM2/24/10
to rub...@googlegroups.com
prefix를 /usr/local 로 하고 소스 설치를 하면
/usr/local/lib/ruby/1.8/i686-darwin10.2.0 디렉토리에
bundle 이라는 확장자를 가진 ext들이 설치됩니다.
디렉토리를 보면 iconv.bundle 이나 readline.bundle 같은 것들을 볼 수 있습니다.
소스 설치 시에 ext는 기본으로 함께 설치되는 것으로 보이네요.

혹시나 해서 소스의 ext 디렉토리로 가서
개별 ext를 직접 설치해보았습니다.
ruby extconf.rb 를 실행하니
Makefile이 생성되어 make; make install 이 가능하네요.
그런데 이렇게 설치하는 ext는
/usr/local/lib/ruby/site_ruby/1.8/i686-darwin10.2.0 디렉토리에 설치되는게 좀 이상해 보이긴 하지만
소스 설치시에 설치 되는 ext와 동일한 것으로 보입니다.

2010/2/24 Moru <lat...@gmail.com>



--
백일몽입니다.

Moru

unread,
Feb 24, 2010, 2:45:36 AM2/24/10
to rub...@googlegroups.com
헉헉... 지금까지 올린 내용이 틀리지 않았는지 제 시스템에 있는 ruby 다 지우고 1.8, 1.9 제컴파일하느라 시간이 좀 걸렸습니다.

참고로 interpreter 레벨에서의 인코딩과 String Class의 "유니코드 문자열"은 별 반 상관이 없기에 *.rb
스크립트에서는 전혀 문제가 없었을 겁니다.
하지만 irb는 이름 그대로 사용자가 직접적으로 대화식으로 이용하는 녀석이라 interpreter의 직접적으로 영향을 받는 것
같습니다. encoding 관련하면 ruby 전반적인 이야기까지 가야하므로 생략하겠습니다.

1. 첫번째 방법 - 단독 설치
이 방법은 ext 전부 필요없을 경우에 편리합니다.

$ cd ruby1.8.x/ext/extension_name
$ ruby extconf.rb
$ make
$ make install

만약 libXXX를 못찾겠다는 에러가 뜨면

$ ruby extconf.rb --with-libname=/path/to/lib

식으로 직접 경로를 넣어주시면 됩니다.

2. 두번째
한 번에 설치합니다.

$ cd ruby-1.8.x/
$ ./configure
$ make
$ make install

make install-all을 해도 무방합니다. 다만 Task에서 조금 차이가 납니다(Task를 보시려면 Makefile
300라인 부근을 참고하세요)
이 때 기본적으로는 ext/* 을 설치대상에 놓게 되므로 문제없이 extension을 설치할 수 있습니다만... 물론 문제도 존재합니다.

OS에 extension이 요구하는 lib이 없을 경우 그냥 깔끔하게 무시 당합니다. 왜 제가 ext/iconv 라고 굳이
ext를 자꾸 지껄이는 것도 이 이유 때문입니다.
이 때는 필요한 lib을 모두 설치한 후(물론 header도 필요합니다) make install을 다시 한 번 하던지 1번의
과정대로 필요한 것만 설치하면 됩니다.
1번의 과정대로 하는 편이 에러 메시지를 읽기 쉽고 명확하기 때문에 가능한한 1번을 추천합니다.

그나저나 오늘 너무 많이 말하는군요. 흔적을 많이 남기는 것도 별로인데 말이에요...
시간이 지나서 이 스레드를 읽었을 때 부끄럽지만 않았으면 좋겠습니다... -_-;

지우고 컴파일하느라 시간을 너무 보냈네요. 슬슬 일해야겠습니다. -_-;

--
Moru

2010/2/24 hampi2 <ham...@zerople.com>:


> 흠.. 그렇다면 죄송한데요
>
>
> ext/iconv 를 활성화 하는 방법을 좀 알려주세요.
>
> 제가 잘 몰라서요~~
>
>
> 2010. 2. 24., 오후 4:05, Moru 작성:
>

>> ext/iconv라고 자꾸 반복하는 건 interpreter에서 인코딩 처리할 때 이 부분을 의존하기 때문입니다.


>> irb에서 비 ascii char set이 제대로 입력 안된다라는 건 unicode 처리가 자체적으로 지원되는 1.9 이전
>> 버젼까지만 해당되는 이야기이기도 하죠.
>>
>> ext/iconv가 제대로 설치가 되었는지 확인하는 방법은 문자를 입력하는 것 외에도 bash에서 지원하는 emacs key
>> binding이 제대로 먹히는지 넣어보는 것도 또 하나의 방법입니다. 이유는 잘 모르겠지만 ext/iconv가 설치가 안된
>> 상태에서는 emacs key binding도 제대로 입력이 되지 않습니다. C-h 같은 걸 넣어보시면 알 수 있습니다.
>>

>> 마지막으로 source를 컴파일하셨을 경우(macport가 아닌) ext 밑에 있는 애들은 별도로 확인할 필요가 있습니다.
>> ext에 있는 애들은 설치할 os에 들어있지 않을 가능성이 있는 lib를 참조하고 있습니다. 말그대로 extension입니다.
>> 실례로 많이들 알고 계시는 rails의 경우도 ext/openssl이 설치되어있지 않을 경우 에러를 뱉어냅니다. ruby


>> core와는 별도의 것입니다.
>>
>> --
>> Moru
>>
>>
>>
>> 2010/2/24 황용대 <sta...@gmail.com>:
>>>
>>> 유닉스 머신에서 소스로 설치할 경우
>>> iconv도 기본으로 들어가지 않나요?
>>> irb에서 require 'iconv' 할 경우 정상적으로 동작합니다.
>>>
>>> 2010/2/24 Moru <lat...@gmail.com>
>>>>
>>>> 아, 참고로 ruby는 intern / extern으로 나누어서 인코딩을 처리합니다.

>>>> 결론만 말씀드리면 os locale 때문에 irb에서 문자가 안먹힌다라거나 하는 문제는 locale 때문에 발생하지는 않습니다.


>>>>
>>>> terminal emulator 자체가 ascii character set 이외의 문자를 거부하는 경우(mac os의
>>>> x11처럼) 이외에는 locale에 관계없이 동작해야 정상입니다.
>>>>
>>>> --
>>>> Moru
>>>>
>>>>
>>>>
>>>> 2010/2/24 Moru <lat...@gmail.com>:
>>>>>
>>>>> 혹시 ruby-1.8..x/ext/iconv 는 설치하셨나요?
>>>>> OpenSolaris에서도 src 설치시 비슷한 상황이 발생합니다. 범인은 libconv...더군요. ruby에서 요구하는
>>>>> 사양과 달라서 문제가 발생하는 것이었습니다.
>>>>>
>>>>> ext 한 번 설치해보시고 증상이 또 나타나는지 알려주시겠어요?
>>>>>
>>>>> --
>>>>> Moru
>>>>>
>>>>>
>>>>>
>>>>> 2010/2/24 황용대 <sta...@gmail.com>:
>>>>>>
>>>>>> 생각난 김에 1.8을 소스 설치했지만
>>>>>> 콘솔에서 한글 안 먹는건 여전하네요. 끄응...
>>>>>>
>>>>>> 2010/2/24 Moru <lat...@gmail.com>
>>>>>>>
>>>>>>> 1. 1.9로 이동시
>>>>>>> 소스코드를 기준으로 설명드린 것이니 나중에 한 번 살펴보시면 금방 아실 수 있을 겁니다.

>>>>>>> 그리고 1.9는 너무 많은 변화(String Class의 Implement가 다시 이루어졌고, yarv가 기본
>>>>>>> interpreter로 도입되었습니다)로 아직까지는 매우 불안정한 상황입니다. 별로 추천드리고 싶지는 않네요. 그래도
>>>>>>> 쓰시겠다면 release note는 꼭 읽어보시라고 말씀드리고 싶네요. 밑에 일부 변화된 내용을 살짝 추가해드립니다.


>>>>>>>
>>>>>>> * String class의 인코딩 변경 : 기본적으로 Unicode셋을 지원하도록 변경됨. 시스템에 의존적이나 대부분의
>>>>>>> 경우
>>>>>>> Unicode 호환성을 지닌 character set이 내부적으로 지정됨. 고로 더 이상 jcode를 include할 필요가
>>>>>>> 없어짐.
>>>>>>> * String class의 인코딩 변경으로 일부 method의 사양이 변경됨. each_byte, each_char 참조.
>>>>>>> * 일부 문법이 추가됨:
>>>>>>>  test = 'abc'
>>>>>>>   + 'def'
>>>>>>>   + 'ghi'
>>>>>>> * MRI대신 yarv가 도입됨: MRI는 느리다라는 의견이 많았기에...
>>>>>>>
>>>>>>>
>>>>>>> 2. 1.8을 유지

>>>>>>> 1.8 설치하실 때 macport를 이용하셨다면 일부 ext만 추가해서 설치하는 것도 가능합니다. 어차피 ruby


>>>>>>> environment를 참고해서 설치가 이루어지기에 site_ruby밑에 알아서 깔립니다. 하지만 mac os에 탑재된 일부
>>>>>>> lib 중에 ruby에서 요구하는 것과 다른 것들이 좀 있어서 ext 설치할 때 좀 삽질을 해야할 겁니다.
>>>>>>>

>>>>>>> ruby의 경우 update나 patch가 좀 잦은 편입니다. security관련 patch가 포함되는 경우도 많으니


>>>>>>> 되도록이면 macport보다는 직접 컴파일해서 쓰는 걸 추천드립니다.
>>>>>>>
>>>>>>> --
>>>>>>> Moru
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2010/2/24 개발팀장 <ham...@zerople.com>:
>>>>>>>>
>>>>>>>> ㅋㅋ 제가 초보라 잘 이해 하지 못했습니다.
>>>>>>>>
>>>>>>>> 답변 감사 드립니다.
>>>>>>>>
>>>>>>>> ㅎㅎ
>>>>>>>>
>>>>>>>> On Feb 24, 12:44 pm, Moru <lat...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>> 이건 terminal이 아니라 ruby ext 문제같네요.

>>>>>>>>> ruby ext중 iconv와 readline이 제대로 설치되어있지 않으면 잔잔한(?) 문제가 발생하곤 합니다.


>>>>>>>>> ruby interpreter가 ascii character set을 표현 가능한 인코딩을 채용하고 있기 때문에 저 두
>>>>>>>>> 개의

>>>>>>>>> ext에 꽤 의존하는 편인 것 같습니다. ext에 있을만한 성격이 아닌데 왜 저기에 있는지는 의문입니다만...
>>>>>>>>>
>>>>>>>>> 일단 readline은 제쳐두고 ext/iconv가 제대로 설치되었는지 확인해 주세요.


>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Moru
>>>>>>>>>
>>>>>>>>> 2010/2/24 개발팀장 <ham...@zerople.com>:
>>>>>>>>>
>>>>>>>>>> 네 기본적으로 셋팅 되어 있네요 ㅎㅎ
>>>>>>>>>
>>>>>>>>>> vi  에서는 한글이 먹는데, ruby의 irb를 실행 시키고 한글 입력 하려 하니 계속 제자리에서 썼다 지웠다를
>>>>>>>>>> 반복
>>>>>>>>>> 하네요
>>>>>>>>>> ㅎㅎ
>>>>>>>>>
>>>>>>>>>> 답변 정말 감사드립니다.
>>>>>>>>>
>>>>>>>>>> 다른 방법을 찾아봐야 하나봐요 ㅎㅎ
>>>>>>>>>
>>>>>>>>>> On Feb 24, 11:46 am, 황용대 <sta...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>> 터미널에서 env 로 LANG 변수의 값을 확인해보시고

>>>>>>>>>>> euc-kr 같은 것으로 잡혀 있다면 .bashrc 나 .profile 에 변수 셋팅을 추가해놓으세요.


>>>>>>>>>>> export LANG=ko_KR.utf-8
>>>>>>>>>
>>>>>>>>>>> 그런데 지금 확인해보니 스노우레오파드에서 한국어로 설정해놓으면
>>>>>>>>>>> 기본으로 ko_KR.utf-8 로 되는거 같은데요.
>>>>>>>>>
>>>>>>>>>>> 레오파드 쓸때 그랬거든요.
>>>>>>>>>
>>>>>>>>>>> 2010/2/24 개발팀장 <ham...@zerople.com>
>>>>>>>>>
>>>>>>>>>>>> 저도 iterm 을 쓰고 있습니다. ㅎㅎ
>>>>>>>>>
>>>>>>>>>>>> 배쉬셀의 LANG를 변경 하는 방법을 좀 알려주세요^^
>>>>>>>>>
>>>>>>>>>>>> 제가 완전 초보라 ㅎㅎ
>>>>>>>>>
>>>>>>>>>>>> 그리고 답변 감사 드립니다.
>>>>>>>>>
>>>>>>>>>>>> On Feb 24, 11:34 am, 황용대 <sta...@gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> 터미널 캐릭터셋 문제일거 같은데요
>>>>>>>>>>>>> 저는 iterm 쓰면서 터미널 인코딩을 UTF-8로 해놓고
>>>>>>>>>>>>> 배쉬쉘의 LANG 을 ko_KR.utf-8 로 해서 쓰고 있습니다.
>>>>>>>>>
>>>>>>>>>>>>> 2010/2/24 개발팀장 <ham...@zerople.com>
>>>>>>>>>

>>>>>>>>>>>>>> Mac os 터미널에서 루비 실행시 소스코드 작성할때 한글은 입력이 안되네요

황용대

unread,
Feb 24, 2010, 2:49:25 AM2/24/10
to rub...@googlegroups.com
흐흐 수고 많으셨습니다.
어느 순간 불 타올라서 저도 계속 붙잡고 있는데 마무리가 안 되네요.
그래도 해결의 힌트는 많이 얻었으니 결론을 지어서 알려드리겠습니다.

2010/2/24 Moru <lat...@gmail.com>



--
백일몽입니다.

Moru

unread,
Feb 24, 2010, 2:50:34 AM2/24/10
to rub...@googlegroups.com
아참.
1번을 추천드리는 것은 말씀드린 것처럼 메시지를 읽기 위한 이유가 큽니다.

제가 OpenSolaris에서 겪었던 미미한 문제들도 결국 참조하려는 동일명의 lib은 있으나 동작여부는 보장할 수 없는
상태가 되어있었기 때문이었습니다.
일부 함수에서 차이가 있었고 header 파일에서도 조금 차이가 있었습니다.

그럼...

Moru

unread,
Feb 24, 2010, 3:05:46 AM2/24/10
to rub...@googlegroups.com
범인은 iconv 아니면 readline 이 중에 있을 겁니다.
스크립트 파일도, irb도 잘 동작하는 걸 보면 readline이겠네요...

interpreter 생각만 하다보니 놓쳤네요. ㅎㅎ
입력시에 깨진다는 걸 이제 봤습니다. 허허

범인은 readline!!!!

진짜 일하러 갑니다. -_-;

Moru

unread,
Feb 24, 2010, 3:08:39 AM2/24/10
to rub...@googlegroups.com
요게 readline 에 해당하는 내용입니다 -_-;
iconv 귀신이 씌였나봐요 ㅎㅎ

2010/2/24 Moru <lat...@gmail.com>:

황용대

unread,
Feb 24, 2010, 3:17:56 AM2/24/10
to rub...@googlegroups.com
진짜 범인은 readline 이였습니다.
port로 설치한 readline 을 참조하도록 옵션을 주고 빌드하고 설치하니 제대로 되는군요.
아래와 같은 옵션으로 Makefile을 만들어서 빌드했습니다.
ruby extconf.rb --with-readline-include=/opt/local/include/readline --with-readline-lib=/opt/local/lib

2010/2/24 Moru <lat...@gmail.com>



--
백일몽입니다.

Moru

unread,
Feb 24, 2010, 3:22:17 AM2/24/10
to rub...@googlegroups.com
정말 다행입니다. :)
축하드립니다!

김주현

unread,
Feb 24, 2010, 6:21:10 AM2/24/10
to rub...@googlegroups.com
정말 축하드려요!!^_^

2010년 2월 24일 오후 5:22, Moru <lat...@gmail.com>님의 말:

황용대

unread,
Feb 24, 2010, 9:16:36 AM2/24/10
to rub...@googlegroups.com
혹시나 하고 집에 와서
제 흰둥이 맥북에 macport로 ruby를 설치했더니
readline의 문제가 없네요.
그냥 소스 말고 port로 설치할걸 그랬어요. OTL

2010/2/24 김주현 <ecl...@ahope.co.kr>



--
백일몽입니다.

Sangmin Ryu

unread,
Feb 24, 2010, 11:11:03 AM2/24/10
to rub...@googlegroups.com
그렇군요. iconv/ext 를 연동시키면 1.8 계열에서도 irb에서도 한글을 잘 볼수 있군요. 좋은 정보 감사합니다.
덜 달릴때 날잡고 테스트 해봐야겠네요. :)

2010/2/24 황용대 <sta...@gmail.com>:

--
http://neocoin.net

Reply all
Reply to author
Forward
0 new messages