2013년 5월 8일 수요일

CentOS 에서 설치 되어 있는 Java Provider 변경 하기

CentOS 를 기본적으로 설치하고, Java JDK or JRE 가 필요해서 설치하고, 난 후 아무리 path 를 잡아도 설치한 JDK or JRE 를 사용 할 수가 없다

아래와 같은 방법을 사용한다

환경
  • Centos - kernel 2.6.32-279.22.1.e16

준비물
  • jdk-7u17-linux-i586.rpm

방법

1설치 전, 현재 머신에 설치 된 Java 정보를 확인한다
[root@localhost bin]# alternatives --config java
There are 2 programs which provide 'java'.
  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
   2           /usr/lib/jvm/jre-1.5.0-gcj/bin/java

2. JDK 설치 ( 난 rpm 버전 다운로드 해서 설치 했다 )

3. path 를 설정 해야 한다, vi ~/.bash_profile 실행 후 맨 아래쯤에 아래와 같이 편집한다
export JAVA_HOME=/usr/java/jdk1.7.0_17/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/*

PATH=$PATH:$HOME/bin:$JAVA_HOME/bin

export PATH

4. 설정 내용을 적용하기 위해, source ~/.bash_profile 를 실행

5. alternatives --config java 실행 후, 새로 설치 한 JAVA 를 선택 한다
[root@localhost bin]# alternatives --config java

There are 3 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
   2           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
   3           /usr/java/jdk1.7.0_17/bin/java

Enter to keep the current selection[+], or type selection number: 3

6. java -version 를 실행 해 본다
[root@localhost bin]# java -version
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) Client VM (build 23.7-b01, mixed mode, sharing)

7. javac 를 실행해서 먹히는지 확인 한다



2013년 5월 7일 화요일

Visual Studio 2012 에서 Linux libcurl Build 하기

환경

  • OS - Window7
  • Tool - Visual Studio 2012 Professional


준비사항

  • ActivePerl(5.16.2.1603) - http://www.activestate.com/activeperl/downloads
  • OpenSSL(1.0.1e) - http://www.openssl.org/source1.0.1e
  • libSSH2(1.4.3) - http://www.libssh2.org
  • libcurl(7.28.1) - http://curl.haxx.se/download.html
  • Netwide Assembler(2.10.07) -  http://www.nasm.us


Install & Build

  • ActivePeal 을 설치
  • 나머지는 c:\cURL\* 에 압축 풀어서 각각 위치 시킨다
  • nasm 을 사용해서 openssl 을 compile 해야 해서 윈도우 환경변수에 nasm Path 를 추가 한다  path=%PATH%;c:\cURL\nasm-2.10.07
  • 저 밑에 nmake 시 cl 도 사용하기 때문에 VS Command 를 사용해야 한다
  • nasm 을 소스 버전으로 받았으니 make 해서 Binary 를 만든다. c:\cURL\nasm-2.10.07 에 가서 nmake /f Mkfiles/msvc.mak 를 실행 한다
  • openssl lib output 용 Directory 를 하나 더 만든다 mkdir c:\cURL\openssl_lib
  • 이제 openssl 소스 폴더로 이동 cd c:\cURL\openssl-1.0.1e\
  • perl Configure VC-WIN32 --prefix=c:\cURL\openssl_lib
  • ms\do_nasm ( 시간이 좀 걸리다 )
  • c:\cURL\openssl-1.0.1e\nmake -f ms\nt.mak ( 이건 시간이 더 걸리다. 한 2시간 걸리는 것 같다 )
  • c:\cURL\openssl-1.0.1e\out32 에서 확인
  • c:\cURL\openssl-1.0.1e\nmake -f ms\nt.mak test ( 이것도 오래 걸리는데, 중간에 중지 시켰다 )
  • c:\cURL\openssl-1.0.1e\nmake -f ms\nt.mak install


  • VS 2012 를 열고 c:\cURL\libssh2-1.4.3\win32\libssh2.dsp 을 Open 한다
  • VS IDE 에서 빌드->구성 관리자를 선택 후 활성 솔루션 구성을 LIB Debug 로 설정 한다
  • VS IDE 의 솔루션 탐색기에서 libssh2 를 선택 후 오른쪽 마우스 클릭하여 속성을 선택한다
  • 속성 페이지에서 구성 속성->C/C++->일반 메뉴 중 추가 포함 디렉터리에 다음을 추가 한다
  • 속성 페이지에서 구성 속성->C/C++->코드 생서 메뉴 중 런타임 라이브러리 항목을 "다중 스레드 디버그 DLL (/MDd) 로 변경 한다
  • 속성 페이지에서 구성 속성->라이브러리 관리자->일반 메뉴 중 출력 파일 속성을 Debug_lib\libssh2.lib 으로 변경 한다
  • 속성 페이지에서 구성 속성->라이브러리 관리자->일반 메뉴 중 추가 종속성 항목의 속성에 libeay32.lib;ssleay32.lib 를 추가 한다
  • 속성 페이지에서 구성 속성->라이브러리 관리자->일반 메뉴 중 추가 라이브러리 디렉터리에 c:\cURL\openssl_lib\lib
  • 이제 libssh2 를 Build 한다


  • curl-7.28.1 을 다운로드하고 c:\cURL\curl-7.28.1 에 압축을 푼다 ( 이 버전만 vsproj 가 있는 것 같다 )
  • c:\cURL\curl-7.28.1\libcurl.vcproj 를 VS2012 로 Open 한다
  • VS IDE 의 솔루션 탐색기에서 libcurl 를 선택 후 오른쪽 마우스 클릭하여 속성을 선택한다
  • 속성 페이지에서 구성 속성->C/C++->일반 메뉴 중 추가 포함 디렉터리에 다음을 추가 한다 ( c:\cURL\libssh2-1.4.3\include\ )
  • 속성 페이지에서 구성 속성->C/C++->일반 메뉴 중 전처리기 정의에 다음을 추가 한다 ( ;CURL_STATICLIB;USE_LIBSSH2;CURL_DISABLE_LDAP;HAVE_LIBSSH2;HAVE_LIBSSH2_H;LIBSSH2_WIN32 ;LIBSSH2_LIBRARY )
  • 속성 페이지에서 구성 속성->라이브러리 관리자->일반 메뉴 중 추가 종속성 항목의 속성에 libssh2.lib 를 추가 한다
  • 속성 페이지에서 구성 속성->라이브러리 관리자->일반 메뉴 중 추가 라이브러리 디렉터리에 c:\cURL\libssh2-1.4.3\win32\Debug_lib 를 추가 한다
  • 이제 libcurl 를 Build 한다


  • 이제 위에서 Build 된 libcurl lib 를 가지고 테스트 프로그램을 만든다
  • 프로젝트를 만들기 전에 미리 폴더 구성을 해둔다
  • c:\cURL\Project
  • c:\cURL\Project\custom_libraries
  • c:\cURL\Project\custom_libraries\include
  • c:\cURL\Project\custom_libraries\lib_dbg
  • 위에서 Build 된 c:\cURL\curl-7.28.1\include\ 의 모든 폴더/파일을 c:\cURL\Projects\custom_libraries\include\ 로 복사한다
  • 그리고 c:\cURL\curl-7.28.1\lib\Debug\ 의 모든 파일들을 c:\cURL\Projects\custom_libraries\lib_dbg\ 로 복사한

  • VS 2012 를 실행하고 새 프로젝트를 만든다 win32 Console Application 으로 만든다. Location 은 c:\cURL\Projects\ 을 선택하고, Create directory for solution 은 체크해 둔다. 프로젝트 이름은 test_curl 로 정했다
  • Application Settings 에서 Addtional options 들 중 기본 체크되어 있는 항목 들을 모두 언체크 한다
  • VS IDE 의 솔루션 탐색기에서 test_curl 를 선택 후 오른쪽 마우스 클릭하여 속성을 선택한다
  • 속성 페이지에서 구성 속성->C/C++->일반 메뉴 중 추가 포함 디렉터리에 다음을 추가 한다 ( c:\cURL\Project\custom_libraries\include )
  • 속성 페이지에서 구성 속성->C/C++->일반 메뉴 중 전처리기 정의에 다음을 추가 한다 ( ;CURL_STATICLIB )
  • 속성 페이지에서 구성 속성->링커->일반 메뉴 중 추가 라이브러리 디렉터리에 다음을 추가 한다 ( c:\cURL\Project\custom_libraries\lib_dbg )
  • 속성 페이지에서 구성 속성->링커->입력 메뉴 중 추가 종속성에 다음을 추가 한다 ( ;libcurl.lib;ws2_32.lib )