Engineering 304

stack 깨질때 gcc compile 옵션

스택깨질때 gcc 컴파일 옵션 http://gcc.gnu.org/onlinedocs/gcc-4.2.3/gcc/Optimize-Options.html - 디버깅 할때 스택이 깨지는 경우 또는 stack overflow 를 막기 위해 다음 옵션 사용- mac os 에서는 디폴트로 사용됨 -fstack-protectorEmit extra code to check for buffer overflows, such as stack smashing attacks. This is done by adding a guard variable to functions with vulnerable objects. This includes functions that call alloca, and functions with buff..

Engineering/Etc 2012.07.10

64 bit linux macine 에서 32 bit compile

64 bit 리눅스 macine 에서 32 bit 를 컴파일할 때, gcc 툴체인에서 다음과 같이 옵션만 추가하면 된다. # gcc -print-multi-lib.;32;@m32 # gcc -m32 hello.c 그런데, 다음과 같은 에러가 발생한다면 패키지를 설치해야 한다.In file included from /usr/include/features.h:352, from /usr/include/stdio.h:28, from gsp_demo.c:1:/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory # yum search glibc-develLoaded plugins: fastestmirrorLoading mirr..

Engineering/Linux 2012.07.05

CentOS 에서 vnc 서버 설정

vnc 서버/클라이언트 설정 요약하자면,1. yum 으로 vnc 패키지 설치2. /etc/sysconfig/vncservers 설정값 수정 : vncserverargs 옵션 설정은 comment 참조 3. 접속할때 사용하는 계정의 디렉토리에서 vncpasswd 실행하여 클라이언트에서 접속할 때 사용할 패스워드 설정한다.# cd ~root# vncpasswdPassword: 4. vnc 서버 설정. 반드시 "vncpasswd" 를 먼저 실행하자. 안하면 에러발생.# service vncserver start 5. vnc 클라이언트로 접속한다.- Real vnc viewer 사용- server 입력부분에 IP:5901 또는 IP:1 입력ex) 192.168.0.21:1 6. vnc 클라이언트 접속했을 때, ..

Engineering/Linux 2012.05.17

CentOS 에 node.js 와 npm 설치하기

CentOS 에서 yum 으로 nodejs 와 npm 패키지를 설치할 때 기본 repository 에서는 찾을 수가 없기 때문에, 소스 tarball 으로 컴파일하고 설치하는 방법을 이용할 수 있다. 그럼에도 rpm 으로 패키지를 관리하기 위해서 방법을 찾아보니 nodejs 와 npm 을 rpm 으로 만들어서 지원해주는 http://nodejs.tchol.org/ 가 있다. 일단 써드파티 repository 지원을 위해 RPMforge 를 설치를 해야한다. CentOS 위키(http://wiki.centos.org/AdditionalResources/Repositories/RPMForge)를 참조해서 rpmforge 를 설치한다. 제대로 되는지 yum install htop 까지 실행해보자.(아마 Cen..

Engineering/Linux 2012.05.16

wordpress 설치시 ftp 업데이트를 안전하게 하기위해 ftps 사용

설치형 블로그 wordpress 를 설치후, 테마나 플러그인을 자동업데이트하기 위해 ftp 서버 설정이 필요하다.그런데, 왠지 평문으로 패킷이 왔다갔다하는 ftp 서버는 왠지 찜찜하다. wordpress 에서 ftps(ftp ssl) 를 지원하기 때문에 서버에 설치했던 vsftpd 를 ftps 로 동작하도록 설정을 해보았다.서버가 centos 5.6 버전인데, 설치된 vsftpd 버전이 2.0.5 이고 다행히 ssl 을 지원한다. http://www.digimoon.net/blog/321 을 참조해서 인증서 생성하고, /etc/vsftpd/vsftpd.conf 환경을 변경하자.그리고나서 vsftpd 를 재시작하면 wordpress 관리자 페이지에서 일반 ftp 가 아닌 ftps 로 업데이트를 받을 수 있..

Engineering/Etc 2012.05.15

CentOS 5.6 에서 php 5.3 설치

CentOS 5.6 에 설치형 블로그인 워드프레스(3.2.1)를 인스톨하려고 하니, "php 5.1.x 에서는 지원하지 않고, 5.2.X 가 필요하다"고 메시지가 나온다. 그래서 설치된 php 버전을 확인하니, 5.1.6 이었다. # php -v PHP 5.1.6 (cli) php 패키지를 업그레이드를 하기 위해 yum update 를 시도해봤으니, 업그레이드가 되지 않는다. 살펴보니 CentOS 가이드에서도 5.2.X 대는 rpm 패키지를 지원안할려고 한다. http://wiki.centos.org/FAQ/CentOS5 그런데, 5.3.X 는 php53 패키지로 설치를 할 수 있다. 이전 설치 상황 # rpm -qa | grep php php-common-5.1.6-34.el5_8 php-cli-5.1..

Engineering/PHP 2012.05.15

대용량 텍스트 파일 내용 변경하기

텍스트 파일 내용중에 일부를 다른 문자열로 치환하기 위해 sed 로 실행해보았다.텍스트 파일은 12 GB 정도, 서버 : CPU Intel Xeon 2.6 GHz, RAM 4GB# sed 's/AAA/BBB/g' text > conv_text실행시간 : 대략 20분에서 30분에서 작업이 종료. -> sed 자체에서 변경하는 부분이 문제일 수도 있지만, redirect 로 다른 파일로 저장하는 것도 실행 시간에 문제가 되었을 것이다. perl 을 사용해서 동일한 작업을 수행했다.# time perl -pe 's/AAA/BBB/g' textreal 6m51.624suser 1m3.129ssys 0m42.110s-> 대략 6,7분 사이에 완료되었다. 백업파일 옵션을 안줘서 그런가해서 다시한번 테스트 해보았다...

Engineering/Etc 2012.04.19