.bashrc 는 터미널이 생성될 때마다 읽히는 것이고
.bash_profile 은 개인적인 설정으로 로그인 할 때마다 읽히는 것입니다.

그런데 .bash_profile 을 수정했는데 (예를들면 JAVA_HOME 이라던가 PATH 라던가) 안 읽히는 것입니다. 뭐 이유는 여러가지가 있겠지만 암튼 이런 경우가 발생했을 때의 해결방법입니다.

$HOME/.bashrc 를 에디터로 엽니다.

$ emacs ~/.bashrc


아래쪽쯤에

if [ -f ~/.bash_profile ]; then
    . ~/.bash_profile
fi


이렇게 추가 해줍니다. 그러면 끝!!


힘들게 저번 포스트 에서 정리를 했더니  더 쉬운 방법이 있다고 알려줘서 정리를 해 둡니다. (시작할 때 왜 알려주지 않은건가여.. )

저번과 거의 동일 합니다.

1. 아파치 설치하기 

$ sudo apt-get install apache2


2. 톰캣 설치하기 

$ sudo apt-get install tomcat7 tomcat7-docs tomcat7-admin tomcat7-examples


  설치해두면 언젠가는 쓸모가 있으니 한꺼번에 설치해줍니다. 

3. 제대로 설치됐는지 확인해보기 

   http://localhost  와 http://localhost:8080 

  으로 페이지가 제대로 뜨는지 확인해 줍니다. 만약 페이지가 제대로 뜬다면 apache2 와 tomcat7 은 제대로 설치된 것입니다. 

여기까지는 동일하고 여기서부터 살짝 바뀝니다.

4. 톰캣 에서 커넥터와 연결시키기 

$ sudo emacs /var/lib/tomcat7/conf/server.xml 


   에서 


       <!-- Define an AJP 1.3 Connector on port 8009 -->
       <!--
       <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
       -->


   로 되어 있는 부분에서 주석을 제거해서 

 

     <!-- Define an AJP 1.3 Connector on port 8009 -->
       <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


   로 변경합니다. 이것은 포트 8009 로 날라오는 프로토콜(protocol)이 AJP/1.3 인 것은 8443 포트로 넘기라는 것입니다.  8443은 톰캣 서버가 처리를 하는 포트라고 보시면 됩니다.   


5.  Proxy_AJP 모듈 활성화 시키기

소개해주신 분의 말씀으로는 아파치와 톰캣을 너무 자주 연결시키다 보니 아파치에 아예 포함되서 나오게 됐다고 합니다.

 $ sudo a2enmod proxy_ajp  



이 부분이 저번 포스트에서 언급했던 커넥터 부분과 동일한 기능을 하는 부분입니다.  

6. 아파치 에서 톰캣 연결시키기 

$ sudo emacs /etc/apache2/sites-available/default 


   이 부분에 대한 언급이 없어서 제일 어려웠던 부분입니다. 위의 파일을 열어서 


  

       DocumentRoot /var/www
   <Directory />
     Options FollowSymLinks
 AllowOverride None
   </Directory>
   <Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
  </Directory>


   인 부분을 찾아서 


DocumentRoot /var/lib/tomcat7/webapps/ROOT
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/lib/tomcat7/webapps/ROOT/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

        ProxyPass /servlet/ ajp://localhost:8009/servlet/
        ProxyPassMatch ^/.*\.(jsp|do)$ ajp://localhost:8009/

 로 바꾸어 줍니다. 즉 /var/www 을 /var/lib/tomcat7/webapps/ROOT 로 바꾸어 주는 것입니다. 그리고 아래쪽에 

ProxyPass /servlet/ ajp://localhost:8009/servlet/
ProxyPassMatch ^/.*\.(jsp|do)$ ajp://localhost:8009/

를 추가해줍니다. 부연 설명을 하자면 아파치(apache)가 바라보고 있는 DocumentRoot 와 톰캣이 바라보고 있는 webapps/ROOT 를 같은 곳을 바라보게 해주는 것입니다. 그리고 맨 아래에 추가해 준것은 jsp 와 do 로 끝나는 파일은 ajp 프로토콜로 8009 번 포트로 리다이렉션 해주라는 것입니다. 

 
7. 테스트페이지를 만들어 봅니다. 

$ sudo emacs /var/lib/tomcat7/webapps/ROOT/hello.jsp 


   내용은 

  

<HTML>
   <BODY>
   Hello!  The time is now <%= new java.util.Date() %>
   </BODY>
   </HTML>


  로 채우고 저장합니다. 

8. 톰캣과 아파치 재시작 (Restart)

$ sudo /etc/init.d/tomcat7 restart
  $ sudo /etc/init.d/apache2 restart



9. 브라우저에서 
   
    http://localhost  와 http://localhost/hello.jsp 로 테스트 해봅니다.


 
예전의 복잡했던 방법에서 탈피해서 MS 의 CoreFonts 들을 쉽게 설치할 수 있는 방법이 열렸습니다. 너무 쉬어서 쓰기도 부끄럽군요. 

 우분투 (Ubuntu) 11.10 에서 테스트 했습니다. "Oneiric Ocelot"(몽환적 시라소니) 라고도 하지요. 
 
$sudo apt-get install cabextract



로 다운 받으시면 됩니다.  제 경우에는 이미 설치되어 있더군요. 
 
그리고  스크립트를 한개 만듭니다.  vista-fonts-installer.sh 로 만들어 줬습니다. 다음은 그 파일에 저장될 내용입니다.




#!/bin/sh
# Copyright (c) 2007 Aristotle Pagaltzis
# 
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.

set -e

exists() { which "$1" &> /dev/null ; }

if ! [ -d ~/.fonts ] ; then
	exec 2>&1
	echo 'There is no .fonts directory in your home.'
	echo 'Is fontconfig set up for privately installed fonts?'
	exit 1
fi

# split up to keep the download command short
DL_HOST=download.microsoft.com
DL_PATH=download/f/5/a/f5a3df76-d856-4a61-a6bd-722f52a5be26
ARCHIVE=PowerPointViewer.exe
URL="http://$DL_HOST/$DL_PATH/$ARCHIVE"

if ! [ -e "$ARCHIVE" ] ; then
	if   exists curl  ; then curl -O "$URL"
	elif exists wget  ; then wget    "$URL"
	elif exists fetch ; then fetch   "$URL"
	fi
fi

TMPDIR=`mktemp -d`
trap 'rm -rf "$TMPDIR"' EXIT INT QUIT TERM

cabextract -L -F ppviewer.cab -d "$TMPDIR" "$ARCHIVE"

cabextract -L -F '*.TT[FC]' -d ~/.fonts "$TMPDIR/ppviewer.cab"

( cd ~/.fonts && mv cambria.ttc cambria.ttf && chmod 600 \
	calibri{,b,i,z}.ttf cambria{,b,i,z}.ttf candara{,b,i,z}.ttf \
	consola{,b,i,z}.ttf constan{,b,i,z}.ttf corbel{,b,i,z}.ttf )

fc-cache -fv ~/.fonts


그리고 


$ chmod a+x ./vista-fonts-installer.sh 




를 해주고 자신의 $HOME 에서 임시 폰트가 저장될 위치를 만들어 줍니다. 


$mkdir ~/.fonts




그리고 파일 다운로드를 위해서 curl 이라는 명령을 설치해줘야 합니다. 


$sudo apt-get install curl 




그리고 마지막으로 위에서 만들어준 스크립트를 실행시켜 줍니다. 


$ ./vista-fonts-installer.sh



만약 에러가 발생한다면 다음 명령을 수동으로 한번 실행해줍니다.

fc-cache -fv ~/.fonts




이상입니다. 이렇게 하면 아주 간단하게 폰트가 설치됩니다. 




Ubuntu natty (11.4) 에 오라클을 설치하는 방법입니다. 

만약 설치할려는 서버의 메모리가 1기가 보다 적을 때는 포기하기로 하자 

$ sudo dd if=/dev/zero of=/swpfs1 bs=1M count=1000
$ sudo mkswap /swpfs1
$ sudo swapon /swpfs1


를 입력해서 스왑을 지정해 줍니다. 그리고 다음과 같이 입력해서 
  

$ sudo emacs /etc/apt/sources.list


를 열어서 제일 아래쪽에 

deb http://oss.oracle.com/debian unstable main non-free


이걸 추가해 주고 , 그리고 GPG Key 값을 추가해 줍니다. 

$ wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -


소스 리스트에 오라클 배포 사이트를 추가해주고 , 키를 등록해 줬으니 이제 소스리스트를 업데이트 해줄 시간입니다.

$ sudo apt-get update


자 이제 어떤 것이 있는지 조사해 볼까요?  

$ apt-cache search oracle


를 입력하면 가장 아래쪽에 
 
   oracle-xe - Oracle Database 10g Express Western European Edition
   oracle-xe-client - Oracle Client 10g Express Edition
   oracle-xe-universal - Oracle Database 10g Express Universal Edition
 
이 세가지가 눈에 띄는군요. oracle-xe 는 유럽 버젼인 듯 하니 oracle-xe-universal 을 깔아줘야 하겠죠?

$ sudo apt-get install oracle-xe-universal 


실수로 oracle-xe 를 설치할 뻔 했는데 universal 버젼이 대략 50메가 정도 용량이 더 크더군요.  다 설치됐으면 설명에 따라서 다음과 같이 설정을 해줍니다. 

$ sudo /etc/init.d/oracle-xe configure 

 

Specify the HTTP port that will be used for Oracle Application Express [8080]:


 오라클 데이타베이스 홈페이지에 접속할 포트 번호를 물어보는 것입니다. 그냥 디폴트로 설정해 줍니다. Enter 

 Specify a port that will be used for the database listener [1521]:


   유명한 오라클의 포트 번호지요? Enter 눌러서 설정해줍니다. 
   

   Specify a password to be used for database accounts.  Note that the same
   password will be used for SYS and SYSTEM.  Oracle recommends the use of 
   different passwords for each database account.  This can be done after 
   initial configuration:
   Confirm the password:


SYS 나 SYSTEM 의 비밀번호 설정에 관한 질문입니다. 걍 기억하기 편하게 , root 라고 입력하죠 한번 더 입력하는 부분이 있으니 똑같이 root 로 입력해 주죠.

 Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:


시작할 때 오라클 데이타베이스를 띄울 것인가에 관한 질문입니다. y 를 입력해줍니다. 

매우 쉽게 오라클 설정이 끝났습니다. 역시 진리의 우분투(Ubuntu) 입니다. 
잘 설치되었는지 확인을 해 줘야 겠지요? 

웹브라우져를 열고 "http://127.0.0.1:8080/apex" 를 입력해 줍니다. 잘 나오시나요? 

만약 안나오신다면 

 $ sudo /etc/init.d/oracle-xe force-reload 

 
한번 실행시켜주시면 됩니다. 

또 다른 이슈? 만약 톰캣 하고 충돌이 일어난다면 

 
 저는 이러한 그림이 뜨는군요. 톰캣이 8080 포트를 점유하고 있어서 그렇습니다. 
   
 /etc/tomcat6/server.xml 파일을 열어줍니다. 그리고 다음과 같은 부분을 찾아줍니다. 

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               URIEncoding="UTF-8"
               redirectPort="8443" />


그리고 8080 을 다른 값으로 바꿔줍니다. 8008 이 괜찮겠군요. 수정했으면 저장하고 빠져나와서 톰캣을 재시작 해줍니다. 

 $ sudo /etc/init.d/tomcat6 restart


톰캣을 재시작 해주고 

 

 $ sudo /etc/init.d/oracle-xe force-reload 


를 실행시켜주시면 됩니다.
 

 
RedHat Linux kernel 2.4.9 에서 JDK 1.4.1_01JDK 1.4.2_05 버젼을 돌릴때 보안 모듈에서 버그가 있습니다. Java 의 Secure Random 에서는 SSL 라이브러리를 쓰는데 이것에 버그가 있는 것입니다.

$JAVA_HOME/jre/lib/security/java.security 파일을 열어서

securerandom.source = file:/dev/random


securerandom.source=file:/dev/urandom

으로 수정해 주면 됩니다. 





별의 별 짓을 해봐도 안 됐었는데

sudo usermod -a -G vboxusers '자신의 아이디'
sudo shutdown -r now


이거 한방에 되는군요.


우분투(8.10 Intrepid) 를 깔고 기본적으로 동영상 플레이를 하면 속된 말로 '지가 알아서 코덱을 다 찾아서'
설정해 주기 때문에 별 문제가 없이 써 왔습니다. 그러다가 욕심이 생겨서 '영화좀 볼까?'  해서 동영상을
받아서 플레이 했는데, 문제가 속출하게 시작했습니다.  대표적인 것이 바로 '윈도우 코덱'들에 관한 문제가
아닐 까 합니다.

http://packages.medibuntu.org/intrepid/w32codecs.html

이 페이지에서 다운받아서 설치하면 웬만한 건 다 해결이 되는데 wmv version 9 가 바로 문제가 됩니다. 특히나
영상은 나오고 소리가 안나오는데 이 문제는 플레이어를 바꿔 줄 필요가 있습니다.

sudo apt-get install totem-xine


하면 토템 플레이어를 다운 받습니다. 여기서

whereis totem


하면 totem 의 위치가 나와서 찾아보면 개략적 으로

/usr/bin/totem -> /etc/alternatives/totem -> /usr/bin/totem-gstreamer


이런식으로 연결이 되어 있습니다. 이 연결을 새로 다운 받은 /usr/bin/totem-xine 와 연결 시켜줄 필요가
있습니다.

cd /etc/alternatives sudo rm totem sudo ln -s /usr/bin/totem-xine totem


여기까지 설치하면 고화질 영상이 쾌적하게 플레이 되지만 한글 자막에 문제가 생깁니다.  그래서 매우 귀찮은
작업들을 해줘야 합니다.

1. 일단 xine-lib 라는걸 받아야 합니다. source-forge 에서 xine 으로 검색을 하시던지.

http://sourceforge.net/project/downloading.php?group_id=9655&use_mirror=nchc&filename=xine-lib-1.1.16.1.tar.bz2&51444304
로 한번에 파일을 받아서 저장하세요.

2.  필요한 라이브러리를 받아야 합니다.

sudo apt-get install libfreetype6-dev


3. 1번에서 저장한 파일을 압축을 푸시고 압축 푼 폴더의 'misc' 로 이동합니다.  저는 제 HOME 에 저장을 했기
때문에.  다음과 같이 입력하면 됩니다.
cd ~/xine-lib-1.1.16.1/misc


4. 이제 xine-fontconv.c 이라는 파일을 컴파일 해야 합니다. (라이트 사용자 안녕..)
gcc xine-fontconv.c -o xine-fontconv `freetype-config --cflags --libs` -lz



5. 이제 자막에서 쓸 한글 폰트만 만들어 주면 됩니다. '은 돋음'이 좋겠군요. 일단 폰트 파일부터 작업장으로
복사해옵니다.

cp /usr/share/fonts/truetype/unfonts/UnDotum.ttf


6. 4 번에서 만들어준 실행파일 xine-fontconv 로 변환해 주는 것만 남았습니다.

./xine-fontconv UnDotum.ttf Sans euc-kr


이러면 Sansxxx.gz 파일들이 생성됩니다.

7. 이제 totem player 설정을 해줘야 합니다. 먼저 폰트 파일들을 복사합니다.

mkdir ~/.xine/fonts
cp Sans*.gz ~/.xine/fonts

8. config 파일을 만들어 줍니다.

gedit ~/.xine/totem_config


로 파일을 하나 만들고 아래와 같은 내용을 채워 줍니다.

subtitles.separate.font:Sans subtitles.separate.src_encoding:EUC-KR
subtitles.separate.subtitle_size:large


이제 저장하고 플레이어로 영상을 재생하면 자막이 잘 나오는 것을 확인 할 수 있습니다.


 최근 리눅스 위키피디아 등 오픈 커뮤니티 형식의 프로젝트 팀들이 거듭 성공을 거두면서
이러한 협업에 대한 관심이 커지고 있습니다.

이러한 협업은 각각의 특징에 따라 4가지 로 나뉩니다. 이 4가지 형태의 협업을 결정 짓는 것은
각각 자신의 회사나 조직이 처해 있는 상황을 검토하고 거기에 알맞은 질문을 던져서 결정하는
것이겠지요.

 
- 당신 회사의 전략에 비추어 볼 때, 협업 네트웍은 얼마나 오픈되거나 닫혀있어야 하는가?

 - 협업 네트웍에서 어떤 문제점이 생길것이고 어떤 해결책을 쓸 것인지 결정할 사람은
    누구인가?


위와 같은 질문을 던지고 나면 협업의 형태가 결정 될 것입니다. 각각의 협업형태에 대해서
알아보도록 하지요.


Elite circle. ( 닫힌 / 위계적인)

 - 한 회사가 참여자를 정하고, 문제를 선정하고 솔루션을 선택합니다.
 - 최고의 솔루션이 나올만한 전문 분야를 잘 알 때.
 - 최고의 전문가가 필요하고, 그 전문가를 선택할 역량이 있을 때.
 - 문제를 정의하고, 솔루션을 평가할 역량이 있을 때.


Innovation mall. (오픈 / 위계적인)

한 회사가 문제를 제기하고, 누구나 솔루션을 제안한다.
회사는 자신이 좋아하는 솔루션을 채택.
최고의 아이디어가 기대하지 않은 곳에서 나올 수 있을 때.
전문가가 제시할 수 있는 더 나은 솔루션을 쓰지 않아도 크게 나쁜 결과가 나올 일이
없을 때.
네트웍에 참가하는 게 쉬울 때.
문제가 작거나, 작게 나눌 수 있을 때.
많은 솔루션을 평가하는게 비용이 높지 않을 때.


Innovation community (오픈 / 수평적인)

누구나 문제를 제기하고, 솔루션을 제시하고 어떤 솔루션을 쓸지 선택.
최고의 아이디어가 기대하지 않은 곳에서 나올 수 있을 때.
모든 요구사항을 알지 못해서, 외부인들과 혁신의 비용과 리스크를 나눠가지고 싶을 때.
네트웍에 참가하는 게 쉬울 때.
문제가 작거나, 작게 나눌 수 있을 때.
솔루션에 대해 지적재산권을 가질 필요가 없을 때.


Consortium (닫힌 / 수평적인)

아무나 참여할 수 없고, 같이 문제를 선정하고 일할 방식을 결정하고 솔루션을 채택.
최고의 솔루션이 나올만한 전문 분야를 잘 알 때.
문제가 크고, 작게 나눌 수 없을 때
최고의 전문가가 필요하고, 그 전문가를 선택할 역량이 있을 때.
필요한 참여자들이 파워를 나눠주지 않으면 참여하지 않을 때.
모든 참여자들의 전문성이 필요할 때.
만들어지는 지적재산권을 다른 참여자들과 공유할 수 있을 때.


회사/조직 은 이제 혼자서 모든 것을 다 감당할 수가 없습니다. 그만큼 사회가 빠르게 변화하기
때문이지요. 그래서 협업은 이제 기업에게 필수 사항입니다. 그런 만큼 어떤 협업이 자신의
회사나 조직에 어울리는 것인지는 차분하게 질문을 던져보고 결정하면 좋겠습니다.





+ Recent posts