언제부터인지 데비안(Debian)이나 우분투(Ubuntu) 커널을 빌드하고 모듈을 인스톨하면 디버그 심볼이나 기타 정보가 엄청 생성돼서 파일이 너무 커지는 일이 발생했습니다. 사실 모듈이 커지는 것쯤은 별일이 아닐 수 있지만, 문제는 램디스크, 즉 initrd를 생성할 때 발생합니다. 모듈이 너무 커서 initrd 사이즈가 500MB까지 증가하거든요. ^^;;;

저는 커널 보안기능을 주로 개발하기 때문에 수시로 커널을 빌드하는데요, 그러다 보면 커널 모듈 크기 때문에 initrd 빌드 시간이 길어져서 빌드 완료까지 대기하는 전체 시간(이라고 쓰고 노는 시간이라고 읽는... 쿨럭..;;)도 길어지더라구요. 그래서 방법을 찾다 보니 아래처럼 하면 된다는 걸 발견했습니다.

# 먼저 커널과 커널 모듈을 빌드합니다.
$> make -j <cpu 갯수>
$> make modules -j <cpu 갯수>

# 불필요한 정보를 제거한 후 모듈을 설치하고 커널을 설치합니다.
$> make INSTALL_MOD_STRIP=1 modules_install -j <cpu 갯수>
$> make install

이제 시간을 효율적(?!)으로 쓸 수 있겠네요!

그럼 즐거운 저녁 되세요 ㅠㅠ)/

요즘 개인적인 이유로 우분투 계열의 리눅스를 의도적으로 쓰려고 하고 있습니다. 예전에도 쓰긴 했지만 빌드 머신으로만 활용한지라... ㅠㅠ 사실 쓴다고 이야기하기도 부끄러울 정도였거든요. 그래서 열심히 써보려고 하긴 하는데, 역시나... 맨날 쓰는 것만 쓰니 마찬가지네요. ^^;;;

쓰다가보니 부팅 때마다 매번 실행하고 싶은 프로그램이 생겼는데요, 매번 실행하려니 이것도 일이더라구요. 그래서 찾아봤더니 /etc/rc.local에 실행하고 싶은 프로그램을 지정해두면 자동으로 실행할 수 있더군요. ^^ 아래처럼 말이죠.

# 매 부팅 시 /usr/test 프로그램을 자동 실행하 싶다면 /etc/rc.local에 다음과 같이 입력

/usr/test &

그럼 좋은 하루 되세요 ^^

ps) /etc/inittab에 추가하는 방법도 있습니다. respawn 옵션은 프로그램이 죽었을 때 자동으로 재실행해주는 옵션이에요 ^^)/~

MyProgram::respawn:프로그램 경로

사실 저는 오픈소스(Open Source)에 대해서 잘은 모릅니다. 그냥 소스가 공개되어 있으니 라이센스에 따라 가져다 쓰고 대신 프로젝트 공개나 기부와 같은 방법으로 고마움을 표현해야 한다고 알고 있습니다. ^^;;;

그런데, 오늘 ZDNet Korea오픈소스 HWP 기술, 공개 1년만에 파국이라는 뉴스 기사가 떳더라구요. 기사의 내용을 간단히 요약하면 아래와 같습니다.

오픈소스 프로젝트로 HWP를 읽을 수 있는 라이브러리를 개발하고 있는 A씨가 우분투커뮤니티의 일부 회원이 자신의 프로젝트를 도용하여 영리를 목적으로 사용하고 있는 것을 발견했다. 그래서 A씨가 "관련자에게 같이 개발에 참여하는 조건으로 그동안 했던 도용을 무마해주겠다"라고 했는데 도용자가 이를 거부했다. A씨는 이에 분노해 관련 프로젝트를 삭제했으며 도용자는 처벌을 받게 되었다.

해당 사건을 구글에서 검색했더니 우분투커뮤니티에서 관련 글이 나오더군요. 글 내용은 우분투커뮤니티의 관련 글에서 보실 수 있습니다. ^^;;;

글을 읽고 났더니 뭔가 착찹한 기분이 들었습니다. 힘들게 진행한 프로젝트를 공개해주고 많은 사람들이 참여와 고마움의 표시를 아끼지 않은 덕분에 오픈소스가 많이 활성화되었지만, 이를 이용해서 사리사욕을 채우는 사람들 때문에 좋은 프로젝트들이 사라지지 않을까 걱정이되더라구요. 오픈소스(Open Source)에는 라이센스를 따를 책임이 있는데, 너무 오픈(Open)된 소스(Source)에만 관심을 두고 있지 않았나 싶습니다. ^^;;;

뭔가 꿀꿀한 저녁이군요. A님 힘내시고 너무 상처받지 않으시길 바랍니다.

우분투에서 루비 온 레일즈를 이용해서 이것 저것 삽질하고 있습니다. ^^;;;; 아무래도 처음하다보니 이것저것 문제가 많은데요. 이번에는 만든 예제를 릴리즈하려고 bundle package를 하다보니 mysql2 관련 오류를 만났습니다. ㅠㅠ

kkamagui@kkamagui-VirtualBox:~/project/blog$ sudo gem install mysql2 -v '0.3.11'Building native extensions.  This could take a while...
ERROR:  Error installing mysql2:
        ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.8 extconf.rb
checking for rb_thread_blocking_region()... no
checking for rb_wait_for_single_fd()... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/usr/bin/ruby1.8
        --with-mysql-config
        --without-mysql-config
        --with-mysql-dir

역시나 해결책은 구글신이 알려주셨습니다. ㅠㅠ 구글신 쵝오 ㅠㅠ)-b (http://railsforum.com/viewtopic.php?id=40776)
아래처럼 libmysqlclient-dev 패키지를 설치하면 깔끔하게 해결됩니다.

sudo apt-get install libmysqlclient-dev

아흑... 뭐라도 하나 제대로 되야할텐데... 쉽지 않네요 ㅠㅠ

우분투(Ubuntu)에서 루비 온 레일즈(Ruby on Rails)버전을 3.2.1로 업그레이드한 뒤에, rails server를 실행했더니 아래와 같은 오류가 발생했습니다. OTL... 정말 이거 원 쉬운 게 하나도 없군요. ㅠㅠ

kkamagui@ubuntu:~/rails/blog/script$ rails server
/usr/lib/ruby/gems/1.8/gems/execjs-1.3.0/lib/execjs/runtimes.rb:50:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
    from /usr/lib/ruby/gems/1.8/gems/execjs-1.3.0/lib/execjs.rb:5

역시 구글을 검색했더니 아래와 같은 해결책을 하사해주셨습니다.(http://stackoverflow.com/questions/6282307/rails-3-1-execjs-and-could-not-find-a-javascript-runtime)

In your Gemfile

write this

gem 'execjs'
gem
'therubyracer'

and then run

bundle install

everything works fine for me :)


역시 구글은 짱인 것 같아요. ㅠㅠ)-b
루비 개발 툴로는 이클립스를 비롯해서 여러가지가 있겠지만 저는 NetBeans를 선택했습니다. 그동안 이클립스를 써와서 좀 다른 툴을 써보고 싶었거든요. ^^;;; 실제로 써보니 NetBeans도 이클립스만큼 쓸만하더군요. >ㅁ<)-b

우분투에서 NetBeans를 설치하는 방법은 아주 간단합니다. 시작 메뉴의 "우분투 소프트웨어 센터"를 클릭하여 소프트웨어 센터를 띄운 다음 아래처럼 검색창에 NetBeans를 입력하면 됩니다. 저는 이미 설치가 되어 있어서 제거로 표시되는데, 실제로 다른 분들은 설치로 표시될 겁니다. ^^;;;

<NetBeans 설치 방법>


NetBeans를 설치하고 나면 이제 Ruby 개발을 위해 플러그인을 설치해야 합니다. NetBeans 플러그인을 설치하려면 먼저 NetBeans를 실행해야 하는데, 시작 메뉴의 "개발" 메뉴를 보면 아까 설치한 NetBeans가 표시될 것입니다. 이를 실행하면 아래와 같은 화면이 표시되는데, 화면의 오른쪽에 빨간 사각형으로 표시된 "Install Plugins"을 클릭합니다.

<루비 개발용 플러그인 설치 화면>


클릭하고나면 플러그인 설치 화면이 표시되는데 여기에 ruby를 입력하면 "Ruby and Rails" 항목이 표시됩니다. 이 항목을 설치했으면 NetBeans를 다시 시작한 뒤에 "File" 메뉴의 "New Project" 메뉴를 선택합니다. 그러면 프로젝트 항목에서 Ruby가 표시되며 Ruby 프로젝트를 만들어서 프로그래밍을 할 수 있습니다. ^^


그럼 좋은 하루 되세요 ^^


+ Recent posts