회사에 CI서버 셋팅할라고 삽질하는데 Ruby가 컴파일 하는데 겁나 에러나서 기록용-_-

yum install ruby로 설치되는 루비 버전이 2.1이여서 2.2.0을 설치하기 위해서 rbenv를 설치하려고 했는데, rbenv는 사실 그냥 스크립트라서 git으로 받으면 되는것인데, rbenv가 문제가 아니라 2.2.0이 컴파일이 잘 안되었어요.그래서 열심히 로그를 살펴본 결과 의존성패키지를 덜 설치해서 그렇더라구요.

아래사이트는 6.5에서 하는 방법인데, 여기에서 몇 개 더 설치를 해줘야 해요.

http://mmclub.github.io/blog/2014/03/30/install-ruby-on-rails-on-centos/


1. 필요 패키지 설치

sudo yum update
sudo yum install git
sudo yum groupinstall -y 'development tools'
sudo yum install -y gcc-c++ glibc-headers openssl-devel readline libyaml-devel readline-devel zlib zlib-devel  sqlite-devel
sudo yum install glibc-devel libffi-devel

맨 아래줄에 있는 거 설치안하면 컴파일할 때 에러나더라구요. 


2. rbenv 설치

git clone git://github.com/sstephenson/rbenv.git ~/.rbenv

다른 계정에서도 실행할 수 있게 하려면 보통 /usr/local/rbenv 위치에 설치하기도 합니다. 


3. ruby-build 설치

git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

rbenv에 설치한 경로 안에 plugins/ruby-build 디렉토리에 설치합니다.


4. 환경변수 설정

글로벌 하게 쓰려면 /etc/profile.d/rbenv.sh로 파일을 생성해서 전체 유저에 영향받게 하고, 해당 유저만 사용하려면 그냥 .bashrc에 넣어도 됩니다.

일반적으로 RBENV_ROOT가 ~/.rbenv로 되어 있습니다. 이걸 바꾸고 싶으면 RBENV_ROOT환경변수를 정의하면 됩니다. 

rbenv를 /usr/local/rbenv에 설치한 경우 /etc/profile.d/rbenv.sh 추가

export RBENV_ROOT="/usr/local/rbenv"
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"

그냥 .rbenv에 설치한 경우에는 rbenv path만 잡아주면 됩니다. (~/.bashrc)

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"


5. 루비를 설치

rbenv install 2.2.0
rbenv rehash
rbenv global 2.2.0
ruby -v
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux]


6. 레일즈도 해볼까...

gem install rails


오 잘된다!

 
Posted by 머드초보
,
 
VirtualBox에 솔라리스를 설치해봤습니다.
한 3번만에 성공한 것 같습니다-_-;
우선 처음에 Open Solaris(오픈 솔라리스)를 설치를 했었습니다.
왠지 더 깔끔해지고, 더욱 진화한 놈인 듯 했습니다.
여기다가 오라클을 설치하려고 시도를 했습니다.
아놔...오라클설치하는 runInstaller라는 쉐이가 버전이 안맞아 라면서 설치 시도도 안해보고 뱉어냅니다.
Open Solaris는 SunOS 11로 인식합니다. 근데 오라클에서는 10을 요구합니다.

그래서 시도한 버전은 Solaris10 u5입니다. sol-10-u5-ga-x86-dvd.iso
우선 처음에 안됐던 것이....
제 컴이 꼬진 건지 아님 솔라리스가 미친 건지 잘 모르겠지만, 하드디스크를 잡을 때 동적으로 잡았더니 시스템 분석하다가 다운이 되버리더군요. 그래서 하드디스크를 정적으로 잡았더니 잘 되더라구요.

그렇게 3번 시도했더니 설치가 되더군요.
그리고, tomcat을 설치하고 제가 사용하는 웹애플리케이션을 설치하고 또 포트포워딩 하려니까 이건뭐 산너머 산이더라구요. 이건 여기 포스트에 정리를....-_-;
http://mudchobo.tomeii.com/tt/289

그리고 부팅할 때 등록하려고 했는데 init.d에다가 스크립트를 넣고, rc3.d에다가 스크립트를 하드링크 해야 하더라구요. 우분투는 자동으로 다 해주는데 이 솔라리스는 그런게 없는 듯 합니다.
그래서 스크립트를 왠지 만들기 귀찮아서-_-; README를 읽어보니 실행스크립트 start/stop 이렇게만 만들면 되는 듯해서 톰캣에 있는 catalina.sh를 그냥 바꿔서 썼더니 안되더라구요.
/var/svc/log/milestone-multi-user-server:default.log 이 로그 파일을 보라고 해서 보니까
뭔가 에러가 있는 것 같아서 직접 스크립트를 만드니까 되더라구요-_-

전 이렇게 만들었어요-_-;
JAVA_HOME=/usr/jdk/instances/jdk1.6.0;export JAVA_HOME
CATALINA_HOME=/usr/apache-tomcat-6.0.16;export CATALINA_HOME
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin;export PATH

case "$1" in
        start)
                echo -n "Starting tomcat: "
                $CATALINA_HOME/bin/catalina.sh start &
                echo
                ;;
        stop)
                echo -n "Shutting down tomcat: "
                $CATALINA_HOME/bin/catalina.sh stop &
                echo
                ;;
esac
exit 0 

뭐 어쨌든 저렇게 넣으면 잘 됩니다.
끌 때에는 rc0.d에다가 스크립트를 넣어주면 됩니다.
파일명 규칙이 있는데 시작할 때는 S or K이고 숫자 2자리넣고 init.d에 있는 스크립트 이름 그대로 사용하면 오케이! 이건 검색 고고싱-_-;
예를 들어 tomcat이면!
init.d/tomcat 스크립트파일 생성.
rc3.d/S99tomcat 시작 시 실행! rc0.d/K99tomcat 종료 시 실행! 이런 식으로!
사용자 삽입 이미지

스샷!


테스트 서버로 쓸만하군요. 같이 띄워도 그렇게 느린 건 모르겠군요 ^^
 
Posted by 머드초보
,
 

우분투의 설치는 윈도우보다 쉬워서 쉽게 접근할 수 있는 리눅스입니다. 설치를 그냥 다음 신공으로만 해주면 됩니다-_-; 설치하고 나서도 필요한 유틸리티 설치도 매우 쉬워요 ^^

처음에 로그인 화면입니다.

사용자 삽입 이미지

뒷 배경에 학인지 뭔지 모르는게 멋있군요.
사용자 삽입 이미지

이클립스 리눅스용을 설치했었는데요.
이클립스의 핵심기능인 컨트롤 스페이스(Ctrl + Space)를 누르려니 한영 전환이 되더라구요.
보니까 컨트롤 스페이스 바로가기를 제거해야하더군요.

컨트롤 스페이스를 누르게 되면, 오른쪽 아래에 무슨 창이 하나 뜨는데요.
사용자 삽입 이미지

SCIM이라는 건데 저기 동그란물음표 옆에 있는거 클릭하면 설정을 할 수 있습니다.
SCIM설정을 클릭하고, 전체설정에서 시작키 부분에서 CTRL + SPACE부분을 제거 합니다.

그리고, 이클립스에서 컨트롤 스페이스 누르면 안됩니다 ^^
리눅스에서는 키 중복에 의해서 컨트롤 스페이스 명령어가 다른 단축키로 되어있더군요.
ALT + / 입니다. 이걸 바꾸시려면 이클립스에서
window -> preferences -> 검색창에다가 key라고 치시면, keys메뉴가 있는 거기서 오른쪽에서
또 단축키 검색하는 부분이 있습니다.
거기서 content Assist 부분의 단축키를 바꿔주면 됩니다. ^^

음....어쨌든 데스크탑처럼 쓸 수 있는 이 우분투가 좋은 듯 하네요 ^^
 
Posted by 머드초보
,
 
우분투는 chkconfig라는 놈이 없는 것 같은데요.

아....리눅스는 또 다른 세계로군요.

어쨌든 찾아보니....이렇게 하면 되는 듯 하네요.

제가 tomcat을 서버 재부팅시 돌아가게 등록을 하려고 했는데요 이렇게 하면 돼요.

우선 JDK랑 TOMCAT설치하시고-_-;(이놈들은 JAVA라 걍 압축만 풀어놔도 완전 잘 돌아가요!!)

/etc/init.d/tomcat 이라는 파일을 하나 생성해서 아래와 같이 적어 놔야하는군요.(기선님 블로그에서 가져온 것 살짝 고쳤어요-_-; 우분투에서는 안돌아가길래-_-;)

#!/bin/sh
#
#Startup script for Tomcat, the Apache Servlet Engine
#
# chkconfig: - 85 15
# description: Start Tomcat
#
# processname: tomcat
#
# Source function library.
export JAVA_HOME=/usr/local/jdk1.6.0_04
export CATALINA_HOME=/usr/local/apache-tomcat-6.0.16
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
# See how we were called.
case "$1" in
  start)
  echo -n "Starting tomcat: "
  $CATALINA_HOME/bin/catalina.sh start
  echo
  ;;
  stop)
  echo -n "Shutting down tomcat: "
  $CATALINA_HOME/bin/catalina.sh stop
  echo
  ;;
  restart)
  $0 stop
  sleep 2
  $0 start
  ;;
  *)
  echo "Usage: $0 {start|stop|restart}"
  exit 1
esac
exit 0

우선 daemon이라는 명령어가 우분투에서 없는 것 같아요-_-; 그래서 그냥 실행하게 만들고-_-;
음...근데 startup.sh 실행하면 계속 실행되네요-_-; 데몬이 계속 뜨는듯-_-;

뭐어쨌든 저렇게 작성하고 chmod 755 tomcat 해서 권한을 주고요.
그다음에 다른 리눅스는 chkconfig로 등록하는 것 같은데...데비안계열은 좀 틀리네요.

update-rc.d라는 명령어로 등록하는 것 같아요.
update-rc.d tomcat defaults 하고 reboot 때리니까 시작할 때 뜨네요-_-;

root@mudchobo:/etc/init.d# update-rc.d tomcat defaults
 Adding system startup for /etc/init.d/tomcat ...
   /etc/rc0.d/K20tomcat -> ../init.d/tomcat
   /etc/rc1.d/K20tomcat -> ../init.d/tomcat
   /etc/rc6.d/K20tomcat -> ../init.d/tomcat
   /etc/rc2.d/S20tomcat -> ../init.d/tomcat
   /etc/rc3.d/S20tomcat -> ../init.d/tomcat
   /etc/rc4.d/S20tomcat -> ../init.d/tomcat
   /etc/rc5.d/S20tomcat -> ../init.d/tomcat

근데 부팅레벨 다 등록하네-_-; 저것도 뭔가 옵션이 있는 듯 한데-_-;
 
Posted by 머드초보
,
 
우선 기본적으로 솔라리스10에는 MySQL이 설치가 되어있더군요-_-;
몰랐습니다. 걍 지우고 다시 깔아봅시다. 원래 삽질을 좋아해서-_-;

pkgrm으로 mysql 지워버립시다-_-;(이래도 되나-_-;)

다시 깔아봅시다.
http://dev.mysql.com/downloads/ 이곳에서 MySQL 솔라리스 pkg용으로 받습니다.
Solaris (pkgadd packages) 이눔인 것 같습니다.

우선 mysql계정을 만들어야 돼요.
[root][/] groupadd mysql
[root][/] useradd -g mysql mysql
[root][/] passwd mysql
새 암호:
새 암호를 다시 입력하십시오:
passwd: 암호(mysql용)가 성공적으로 변경되었습니다.

mysql이라는 그룹을 추가하고 mysql이라는 사용자를 추가하고 그룹은 mysql로 하고 비밀번호를 바꿔줍시다.
아.....그리고 mysql이라는 계정에 디렉토리가 아마 /home/mysql로 되어있는데요.
home아래에 이상하게 디렉토리가 안만들어지드라구요. 그래서 /user/mysql/ 이라는 디렉토리를 만들고
소유자를 mysql로 바꿨습니다.

[root][/]mkdir /user/mysql/
[root][/]chown mysql /user/mysql/
[root][/]cd /user/mysql/
[root][/user/mysql]ls -al
총 4
drwxr-xr-x   2 mysql    root         512  1월 18일  18:37 ./
drwxr-xr-x   4 root     root         512  1월 18일  18:37 ../
[root][/user/mysql]vi /etc/passwd/

mysql:x:101:100::/user/mysql:/bin/csh  #홈디렉토리변경 및 쉘도 변경

받은다음에 서버에 올려서 gunzip으로 풀고, pkgadd로 패키지를 설치합시다. 당근 root계정으로 ^^
[root][/user/mudchobo]gunzip mysql-5.0.45-solaris10-i386.pkg.gz
[root][/user/mudchobo]pkgadd -d mysql-5.0.45-solaris10-i386.pkg

이제 막 설치가 되는데요. 다되었으면 "<mysql>(이)가 성공적으로 설치되었습니다." 라고 떠요.
기본으로 /usr/local/mysql/ 에 설치가 되어있습니다.

설정파일을 만들어야하는데요.  /etc/my.cnf 에다가 만듭니다.
[root][/user/mudchobo]vi /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /user/mysql/data
datadir은 mysql 홈디렉토리아래에 data디렉토리로 설정해두시면 됩니다.
저의 홈디렉토리는 /user/mysql/ 이어서 저렇게 설정한 겁니다.

mysql이 어느경로에서도 실행될 수 있게 PATH를 잡아줍시다.
기존 PATH에 /usr/local/mysql/bin 이눔도 추가해줍시다.

csh에서는 setenv PATH {$PATH}:/usr/local/mysql/bin 이런식으로 합니다.

그다음 가장먼저 실행해야할 mysql_install_db를 실행해야합니다.
[root][/] cd /usr/local/mysql/scripts
[root][/opt/mysql/mysql/scripts]ls
mysql_install_db*           mysql_install_db.in         mysql_install_db.old.1208*  mysql_install_db.old.1731*
[root][/opt/mysql/mysql/scripts] ./mysql_install_db --user=mysql --ldata=/user/mysql/data

라고 해주면 됩니다. 자 이제 mysql을 띄워 봅시다. mysql은 mysql계정으로 들어가서 띄워야합니다.
[mysql][/user/mysql] mysqld &
[1] 1516
[mysql][/user/mysql] 080118 19:07:17  InnoDB: Started; log sequence number 0 43655
080118 19:07:17 [Note] mysqld: ready for connections.
Version: '5.0.45'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server (GPL)
[mysql][/user/mysql]

mysql에 접속해봅시다. root비밀번호가 처음에는 설정되어 있지 않습니다. password없이 접속됩니다.
[mysql][/user/mysql] mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45 MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>


mysql 비밀번호 변경하는 방법은 2가지가 있네요(더 있을 수도 있을지도^^)

1. mysqladmin을 이용해서 하는방법
[mysql][/user/mysql] mysqladmin -u root password '비밀번호'


2. mysql에 mysql -u root 로 접속해서 변경하는 방법(이건 차후에 변경할 때도 쓰이겠죠^^)

[mysql][/user/mysql] mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.0.45 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('비밀번호');
Query OK, 0 rows affected (0.01 sec)



이제 사용자를 추가해봅시다.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'myid'@'%' IDENTIFIED BY 'mypasswd' WITH GRANT OPTION;
Query OK, 0 rows affected (0.02 sec)
mysql>

저기 %로하셔야 어디서든 접속이 가능한 계정으로 만들어집니다. localhost로하면 local에서 밖에 접속을 못합니다.

mysql을 종료시켜봅시다.
[mysql][/user/mysql] mysqladmin -uroot -p1234 shutdown
080118 19:27:18 [Note] mysqld: Normal shutdown
080118 19:27:18  InnoDB: Starting shutdown...
080118 19:27:20  InnoDB: Shutdown completed; log sequence number 0 43655
080118 19:27:20 [Note] mysqld: Shutdown complete
[mysql][/user/mysql]

아....잘되네요

두리야 다 정리했다 어셔 시도해보거라-_-;
 
Posted by 머드초보
,