'분류 전체보기'에 해당되는 글 81건

  1. 2015.01.15 #20150115-01 :: Ubuntu 12.04 :: (1) 사용자 이름 및 그룹 변경하기
  2. 2014.07.14 #20140714-02 :: lgcodechallenger :: vsftpd 3.0.2 on ubuntu 14.04 LTS with AWS
  3. 2014.07.14 #20140714-01 :: lgcodechallenger :: apache 2.4.7 + django 1.5.8 on ubuntu 14.04 LTS with AWS
  4. 2014.06.26 #20140626-01 :: aptana3 :: Google App Engine directory on Aptana Studio 3
  5. 2014.04.18 #20140418-01 :: Apache :: (13)Permission denied
  6. 2014.04.03 #20140403-01 :: Maven :: Java version reset problem
  7. 2013.11.25 매우 이른 2014년을 향한 다짐
  8. 2013.08.15 How to build the C++ boost library 1.54.0 on windows
  9. 2013.08.11 #20130811-01 :: V8 :: Build V8 Javascript engine on VS2010 with 'error MSB6006'
  10. 2013.05.10 #20130510-01 :: Synergy :: Synergy on Ubuntu

#20150115-01 :: Ubuntu 12.04 :: (1) 사용자 이름 및 그룹 변경하기

저는 회사에서 윈도우와 우분투 두 대의 노트북을 사용하고 있습니다.

원인 불명으로 우분투 노트북이 사망하고 말았습니다.

그래서 우분투를 새로 설치한 후 설정한 내용을 정리합니다.


먼저, 저의 회사 계정은 'jh81.kim' 입니다.

그런데 우분투 설치 시 계정 이름에 '.'을 포함 시킬 수 없습니다.

그래서 일단 'jh81kim'으로 설치하고 'jh81.kim'으로 변경합니다.


root 로그인이 가능하도록 설정을 해줍니다.


$ sudo passwd root

root 계정 비밀번호 설정


$ sudo sh -c 'echo "greeter-show-manual-login=true" >> /etc/lightdm/lightdm.conf'

$ sudo reboot

root 계정 로그인


계정 이름과 홈 디렉토리를 변경한 후

root 로그인이 불가능 하도록 변경 전의 설정으로 되돌립니다.


# usermod -m -d /home/jh81.kim -l jh81.kim jh81kim

# passwd -l root

# vi /etc/lightdm/lightdm.conf

greeter-show-manual-login=true 삭제

# reboot


그룹 이름도 jh81kim에서 jh81.kim으로 변경합니다.


$ cat /etc/group | grep jh81.kim

$ sudo groupmod -n jh81kim jh81.kim

$ cat /etc/group | grep jh81.kim

#20140714-02 :: lgcodechallenger :: vsftpd 3.0.2 on ubuntu 14.04 LTS with AWS

$ sudo su

# apt-get install vsftpd

# vi /etc/vsftpd.conf


anonymous_enable=NO

local_enable=NO

write_enable=YES

connect_from_port_20=NO

ascii_upload_enable=YES

ascii_download_enable=YES

chroot_local_user=YES


allow_writeable_chroot=YES

pasv_max_port=51000

pasv_min_port=50000


: wq


# sudo adduser design

# service vsftpd restart

# ufw allow 20

# ufw allow 21


# cd /home/design
# mkdir lgcc_media
# vi /etc/fstab
  /srv/django/lgcodechallenger/lgcc_media    /home/design/lgcc_media     none     default,bind     0     0
# mount lgcc_media


#20140714-01 :: lgcodechallenger :: apache 2.4.7 + django 1.5.8 on ubuntu 14.04 LTS with AWS

$ sudo su

# apt-get update

# vi ~/.bashrc

  export LANG="en_US.UTF-8"

  export LC_ALL="en_US.UTF-8"

  : wq

# source ~/.bashrc

# apt-get -y upgrade

# wget https://www.djangoproject.com/download/1.5.8/tarball/ --default-page=Django-1.5.8.tar.gz

# tar -vxzf Django-1.5.8.tar.gz

# cd Django-1.5.8

# sudo python setup.py install

# python -c "import django; print(django.get_version())"


# apt-get install -y apache2

# apache2 -version


# sudo aptitude install -y libapache2-mod-wsgi

# a2enmod wsgi


# sudo apt-get install -y git-core python2.7-mysqldb


# mkdir /srv/django

# cd /srv/django

# git clone https://github.com/ghilbut/lgcodechallenger.git

# cd lgcodechallenger/lgcc

# cp settings.py.example settings.py

# vi settings.py

  == do something ==


# vi /etc/apache2/sites-available/001-lgcc.conf


<VirtualHost *:80>

  ServerAdmin support@lgcodechallenger.com

  ServerName lgecodejam.com

  ServerAlias design.lgcodechallenger.com dev.lgcodechallenger.com


  DocumentRoot /var/www/html


  Alias /static/admin /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/

  Alias /static /srv/django/lgcodechallenger/lgcc_media/static/


  <Directory /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin>

    Require all granted

  </Directory>


  <Directory /srv/django/lgcodechallenger/lgcc_media/static>

    Require all granted

  </Directory>


  WSGIDaemonProcess lgcodechallenger.com user=ubuntu group=ubuntu processes=1 threads=10 python-path=/srv/django/lgcodechallenger:/usr/local/lib/python2.7/site-packages

  WSGIProcessGroup lgcodechallenger.com


  WSGIScriptAlias / /srv/django/lgcodechallenger/lgcc/wsgi.py


  <Directory /srv/django/lgcodechallenger/lgcc>

    Order allow,deny

    Allow from all


    <Files wsgi.py>

      Require all granted

    </Files>

  </Directory>


  ErrorLog ${APACHE_LOG_DIR}/error.log

  CustomLog ${APACHE_LOG_DIR}/access.log combined


</VirtualHost>

:wq


# a2dissite 000-default.conf

# a2ensite 001-lgcc.conf

# apachectl configtest

# service apache2 restart

#20140626-01 :: aptana3 :: Google App Engine directory on Aptana Studio 3

Aptana Studio 3에서 Google App Engine 프로젝트를 만들게 되면,

Google App Engine Directory를 요구합니다.


Mac OS X에서는 프로그램이 *.app으로 패키징 되어있기 때문에

Aptana3의 Browse 버튼으로는 요구하는 위치를 설정할 수 없습니다.


그래서 아래의 경로를 입력창에 직접 입력합니다.


/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/


#20140418-01 :: Apache :: (13)Permission denied

오늘 서버 작업을 하면서 매우 곤란한 문제를 마주했었습니다.


환경

- Cent OS 6.4

- Apache 2.4.9


간단한 웹서비스 페이지를 하나 올려야 했고

서비스 포트로 8082를 지정 받았습니다.


아파치를 설치하고 몇 가지 설정을 하니 아래와 같은 에러와 마주하게 되었습니다.


$ sudo service httpd start

Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:8082

(13)Permission denied: make_sock: could not bind to address 0.0.0.0:8082

no listening sockets available, shutting down

Unable to open logs


한참을 검색하고 삽질을 하다가 알게 된 사실은

Cent OS에서는 httpd에 대하여 특정 포트만을 허용하고 있다는 것이었습니다.

자세한 내용은 아래와 같이 볼 수 있습니다.


$ sudo semanage port -l|grep http

http_cache_port_t              tcp      3128, 8080, 8118, 8123, 10001-10010

http_cache_port_t              udp      3130

http_port_t                    tcp      80, 443, 488, 8008, 8009, 8443

pegasus_http_port_t            tcp      5988

pegasus_https_port_t           tcp      5989


위의 목록에서 http_port_t에 8082가 없기 때문에 계속 에러가 난 것입니다.


해결 방법은 다음과 같습니다.


$ sudo yum -y install policycoreutils-python

$ sudo semanage port -a -t http_port_t -p tcp 8082


검색을 해 보니 SELinux에는 semanage 가 기본으로 있는 것 같은데 

Cent OS에는 설치되어 있지 않았기 때문에 별도로 설치하였습니다.

그리고 semanage를 통해 8082 포트를 허용해 주도록 추가 등록 하였습니다.



#20140403-01 :: Maven :: Java version reset problem

현재 회사에서 Spring + Maven 환경의 프로젝트를 진행 중입니다.


프로젝트를 진행하면서 다음과 같은 문제를 만났습니다.


- 나는 Java 1.7을 사용하고 있다.

- Maven Update를 하면 Java 1.5로 환경이 리셋된다.

- 프로젝트가 에러가 발생한다.

- 환경설정에서 1.5로 모두 변경해야 한다.


검색을 통해 해결책을 찾았습니다. [링크]


pom.xml 파일에 아래와 같은 내용을 추가하거나 변경하면 됩니다.


<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0</version>
    <configuration>
       <source>1.7</source>
       <target>1.7</target>
    </configuration>
</plugin>


매우 이른 2014년을 향한 다짐

내가 10여년 간 이미지 해왔던 나는

최고의 실력을 갖춘 프로그래머가 아니라

최고의 제품을 만들어 내는 프로그래머라는 것을

오늘 다시 기억해 냈다.


흔들리지 말고 

겁먹지 말고

거칠고 부족해도

거침없이 전진하자.


목표가 흔들리면 

발걸음도 흔들리고

결국 넘어질 뿐이다.


단 한번도 평범을 위해 살지 않았던 나는

지금에 와서 다른 그 누구도 될 수 없다.


서로가 다른 모습을 하고 있기에

좋은 인연이 닿은 것임을 깨닿고

타인과 같아지려고 하기보다

타인이 인정할 수 밖에 없는 사람이 되자.


2014년은 최고의 2015년을 시작하기 위한 포석으로...

그렇게 2013년의 마직막 한달은 2014년의 준비를 위해...

돈도 잠도 부질없던 꿈만을 먹던 그 시절을 다시 한 번...

How to build the C++ boost library 1.54.0 on windows



[환경]

- Windows 7 32/64 bit
- Visual Studio 2010
(위 환경은 본인이 집과 회사에서 사용하는 개발 환경이다.)


[준비물]

물론, 아래의 준비물이 꼭 다 필요한 것은 아니다.
boost library는 매우 다양한 종류의 라이브러리들이 모여 있으며,
컴파일이 필요없는 #define 매크로 형태에서부터 Template Meta Programming 형태, 
그리고 시스템 종속성으로 인해 컴파일이 필요한 형태까지 다양하다.
아래의 준비물 들은 boost를 통째로 컴파일 하기 위한 환경이며,
boost의 구성물을 선별적으로 사용하고자 한다면,
홈페이지의 Getting Started 를 참고하여 
자신이 필요한 라이브러리가 컴파일이 필요한지
필요하다면 아래의 라이브러리들에 종속성이 있는지를 확인하여 사용하는 것이 좋다.
컴파일이 필요한 라이브러리들은 개별 메뉴얼에 컴파일 방법이 소개되어 있다.

boost library source files (1.45.0)
홈페이지는 여기 , 다운로드 페이지는 여기 , 다운로드 링크는 여기


bzip2 (1.0.6)
홈페이지는 여기 , 다운로드 페이지는 여기 , 다운로드 링크는 여기

zlib (1.2.8)
홈페이지는 여기 , 다운로드 링크는 여기

icu (icu4c 51.2)
홈페이지는 여기 , 다운로드 페이지는 여기 , 다운로드 링크는 여기

python (2.7.5)
홈페이지는 여기 , 다운로드 페이지는 여기 , 다운로드 링크는 여기

7-zip command line tool
홈페이지는 여기 , 다운로드 페이지는 여기 , 다운로드 링크는 여기


[파일 및 폴더 구성]

아래는 본인이 애용하는 빌드 자동화를 위한 폴더 및 파일 구조를 나타낸 것이다.
설치 시에 뒤에 오는 배치파일을 분석하여 본인 취향대로 수정해도 무방하다.
볼드체가 폴더명이다.
이탤릭체로 표현된 build_1_54_0.bat 파일은 아래의 [배치파일 만들기]를 참고하도록 한다.

~/boost
         build_1_54_0
              arc
                   boost_1_54_0.7z
                   bzip2-1.0.6.tar.gz
                   icu4c-51_2-src.zip
                   Python-2.7.5.tgz
                   zlib-1.2.8.tar.gz
              bin
                   7za.exe
         build_1_54_0.bat


[배치파일 만들기]

위 파일들이 모두 갖추어졌다면 아래와 같은 내용의 배치파일을 만든다.
본인은 build_1_54_0.bat 라는 이름으로 배치파일을 만들었다.
아래 스크립트 중 볼드&이탤릭체로 된 부분은 본인의 환경과 목적에 맞추어 수정하면 된다.
예를 들어 VS2008 사용자는 10.0을 9.0으로 수정하고, 라이브러리를 무조건 DLL 파일로 분리 배포하고 싶다면 static,sharedshared로 바꾸면 된다. 나머지도 비슷하게 하면 된다.

set path=%path%;%cd%\bin;

: zlib 1.2.8
7za x -o"%cd%\tmp" arc\zlib-1.2.8.tar.gz
7za x -o"%cd%\tmp" "%cd%\tmp\zlib-1.2.8.tar"
set ZLIB_SOURCE="%cd%\tmp\zlib-1.2.8"

: bzip2 1.0.6
7za x -o"%cd%\tmp" arc\bzip2-1.0.6.tar.gz
7za x -o"%cd%\tmp" "%cd%\tmp\bzip2-1.0.6.tar"
set BZIP2_SOURCE="%cd%\tmp\bzip2-1.0.6"

: python 2.7.5
7za x -o"%cd%\tmp" arc\Python-2.7.5.tgz
7za x -o"%cd%\tmp" "%cd%\tmp\Python-2.7.5.tar"
set PYTHON_ROOT="%cd%\tmp\Python-2.7.5"
set PYTHON_VERSION=2.7

: icu 51.2
7za x -o"%cd%\tmp" arc\icu4c-51_2-src.zip
set ICU_PATH="%cd%\tmp\icu\source\common"

: boost 1.54.0
7za x -o"%cd%\tmp" arc\boost_1_54_0.7z

: b2
pushd tmp\boost_1_54_0\tools\build\v2
call bootstrap.bat
b2 install --prefix="..\..\..\..\b2"
popd
set path=%path%;%cd%\tmp\b2\bin;

: compile
pushd tmp\boost_1_54_0
b2 --prefix=%cd%\..\..\.. --without-mpi toolset=msvc-10.0 variant=debug,release link=static,shared runtime-link=static,shared threading=single,multi address-model=32 install
popd

: clear
rmdir /s /q tmp


[인스톨]

마지막으로 위의 배치파일을 실행시키면 boost 폴더 하위에
include와 lib 폴더가 생길 것이다.
생성되는 두 폴더를 가져다 사용하면 된다.


현재 빌드에는 boost.MPI 는 포함되어 있지 않다.
언젠가는 포함 하겠지만, 당장 필요도 없고 바쁜 관계로 무기한 보류 중이다.

현재 Python은 2.x와 3.x로 양분되어 있으며, 
2.x도 2.5 , 2.6 , 2.7 세 가지 버전이 혼재되어 쓰이고 있다.
본인은 현재 가장 널리 쓰이며 호환성 문제가 없는 2.7 기준으로 빌드하였다.
사용자는 자기가 원하는 버전을 이용하면 되겠다.


'open source > boost' 카테고리의 다른 글

boost library 1.45.0 build on windows  (0) 2010.12.29
boost library 1.44.0 build on windows  (0) 2010.12.29
boost library  (0) 2010.12.28

#20130811-01 :: V8 :: Build V8 Javascript engine on VS2010 with 'error MSB6006'

지난 8월 9일 회사에서 처음으로 V8 자바스크립트 엔진을 다운로드 받아 빌드해 보았습니다. 환경은 윈도우7 64bit, VS2010 입니다. 공식 메뉴얼에 따르면 쉽게 컴파일하고 테스트 해 볼 수 있습니다. 그리고 어제부터 집에서 똑같은 절차에 따라 32bit 환경에서 빌드를 시도해 보았습니다. 그런데 실패 ㅋ 지속적으로 MSB600 에러를 발생시켰습니다. 문제는 빌드 경로에 한글이 있는 것이었습니다. V8까지의 전체 경로에 한글이 없는 곳으로 폴더를 이동하자 정상적으로 테스트 할 수 있었습니다.

#20130510-01 :: Synergy :: Synergy on Ubuntu

저는 회사에서 2대의 데스크북과 한대의 맥북프로를 사용하고

Synergy를 이용해 키보드와 마우스 공유를 하고 있습니다.

구성은 Ubuntu를 Synergy 서버로 하고 Windows 7을 클라이언트로 했는데,

문제는 현재 설정으로는 Ubuntu에 개인 계정으로 로그인 하기 전에는 

Synergy 서버가 켜지지 않았습니다.

그래서 부팅 후 바로 Synergy 서버가 동작하도록 하는 방법을 찾던 중

Ubuntu에서 Synergy 사용법을 가이드하는 문서 페이지를 찾았습니다.

문서에서 가이드한 대로 설정을 한 결과

현재는 로그인을 하지 않아도 키보드와 마우스가 공유 됩니다.

저와 같은 방식으로 사용하기 원하시는 분들은 링크를 확인하세요.