2019년 3월 6일 수요일

CentOS 개발 환경 구축 #1.

어쩌다가 한번씩 해야할 일이 있는데 기억이 나질 않아서 ...


1. CentOS (6.x) 설치.

  
   뭐 특별한게 없는데 minimal 기준으로 작성.
   서버나 개발용 workstation으로 설치하면 미리 설치되는 패키지가 있어 조금 다를 수는
   있지만 큰 차이는 없고, CLion 같은 GUI 개발 툴을 사용하는 경우 개발용 workstation
   으로 설치하는게 더 낫다.

2. 개발용 기본 패키지 설치.


  
1
yum groupinstall "Development Tools"
cs


   개발 도구를 설치하면 sshd daemon도 같이 설치되어 이후 터미널로 작업이 가능하다.
   ssh를 통해 터미널 접속을 하려면 방화벽 설정을 해야 하는데 그냥 과감히 중지하자.

  
1
2
chkconifg iptables off
service iptables stop
cs


3. 사용자 계정 추가 및 admin 권한 부여.


  
1
2
useradd ships
passwd ships
cs


   그리고, 일반 계정에 admin 그룹 권한 부여는 이전에 작성했던 다음
   CentOS에서 admin 그룹 유저에게 root 권한 부여하기 글을 참고.
   중간 이미지에 오타가 있으니 조심해야 한다.

4. 추가로 필요한 패키지 설치.


  
1
2
3
yum install vim-enhanced.x86_64
yum install ctags.x86_64
yum install cscope.x86_64
cs


   개발 도구 패키지 그룹에 기본 포함되어 있는 것도 있을 수 있다.

5. vi 설정 파일 수정.


  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
vi ~/.vimrc
 
##########################################
syntax on
set ts=4
set sw=4
set ai
set cindent
set smartindent
set hlsearch
filetype on
set fileencoding=korea
set fileencodings=ubs-bom,utf-8,korea
##########################################
cs


   Molokai color scheme 적용을 위해 첨부된 molokai.vim 파일을 다운로드 받은 뒤,
   계정 홈 디렉토리에 ./vim/colors/ 디렉토리를 생성 후 복사한다.

   그리고, .vimrc 설정에 다음 설정을 추가한다.

  
1
2
colorscheme molokai
let g:molokai_original=1
cs


   그리고, 현재 어떤 함수에 캐럿이 있는지 확인할 수 있는 스크립트 함수를
   다음처럼 추가한다.

  
1
2
3
4
5
6
7
8
9
fun! ShowFuncName()
  let lnum = line(".")
  let col = col(".")
  echohl ModeMsg
  echo getline(search("^[^ \t#/]\\{2}.*[^:]\s*$", 'bW'))
  echohl None
  call search("\\%" . lnum . "l" . "\\%" . col . "c")
endfun
map f :call ShowFuncName() <CR>
cs


   C++ header와 source 전환을 위한 플러그인 a.vim 파일을 다운로드 받은 뒤,
   계정 홈 디렉토리에 ./vim/plugin/ 디렉토리를 생성 후 복사한다.
   그리고 .vimrc 설정에 다음과 같이 확장자를 등록한다.

  
1
2
let g:alternateExtensions_h = "C"
let g:alternateExtensions_C = "h"
cs

2019년 1월 22일 화요일

UTF-8 문자열 바이트 기준으로 자르기.

어쩌다 해야 할 일이 있는데 기억력이 좋지 못해서 ...


 1. UTF-8


  • 0xxxxxxx - ASCII와 동일
  • 11(0-1)xxxxx 10xxxxxx (10xxxxxx) - 2, 3 바이트 문자의 경우 첫 번째 바이트는 110 또는 1110으로 시작
  • 4 바이트 표현도 존재하지만 자르는데 의미는 없으므로 생략.


2. 예제.

 
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import re
 
def cut_utf8_by_byte(text, length):
    """
    """
 
    if len(text) >= length:
        if re.match('[\xE0-\xFF]', text[length]) is not None:
            length -= 1
        elif re.match('[\x80-\xFF]', text[length]) is not None:
            while True:
                length -= 1
                if re.match('[\xDF-\xFF]', text[length]) is not None:
                    break
    return text[:length]
cs

3. 결과.


  
.

2018년 2월 14일 수요일

시간 정보가 포함된 history

기억력이 가물 가물해져서 마지막 빌드를 오늘 했는지 어제 했는지 ...


1. history

   /etc/profile file 마지막에 다음 2 줄을 추가.

   
1
2
HISTTIMEFORMAT="%F %T -- "
export HISTTIMEFORMAT
cs


   그리고 반영한다.

   
1
source /etc/profile
cs

2. 결과


 

2018년 2월 13일 화요일

CentOS 6.x 버전에 PostgreSQL 최신 버전 설치하기 - #02.

yum install postgresql-server 까지는 동일. 하지만,


1. Post-installation commands.

   공식 문서와 마찬가지로 이번엔 /var/lib/pgsql/9.3/data/ 경로로 directory가 
   생성되었습니다. 그리고 마찬가지로 초기화도 버전 정보가 포함된 상태로 
   진행합니다.

   
1
service postgresql-9.3 initdb
cs


2. Startup

   그리고 서비스를 실행합니다.

   
1
2
chkconfig postgresql-9.3 on
service postgresql-9.3 start
cs


   이 후 진행은 CentOS 7.0에서 PostgreSQL 외부 접속 허용하기 대로 진행한다.

2018년 2월 12일 월요일

CentOS 6.x 버전에 PostgreSQL 최신 버전 설치하기 - #01.

서비스 환경이 그러하다.


1. CentOS 6.5

   제목은 6.x라고 정했지만 우리는 6.5를 사용중이기 때문에 6.5를 사용합니다.


   보시다시피 8.4.x 버전 이외에 다른 버전은 없습니다.

2. 저장소 변경.

   최신 버전을 설치할 수 있도록 저장소를 변경합니다.

1
vi /etc/yum.repos.d/CentOS-Base.repo
cs

   그리고, [base]와 [updates] 항목에 postgresql 관련 항목을 무시하도록 추가합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
exclude=postgresql*
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
exclude=postgresql*
cs


3. 저장소 설치.

  • 다운로드 후 설치
    • 1
      2
      curl -O http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-3.noarch.rpm
      rpm -ivh pgdg-centos93-9.3-3.noarch.rpm
      cs
  • 바로 설치
    • 1
      rpm -Uvh  https://download.postgresql.org/pub/repos/yum/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-3.noarch.rpm
      cs

4. PostgreSQL 설치.

   그리고 그 다음은 그냥 설치하면 된다.

2018년 1월 17일 수요일

PyCrypto 64 비트 윈도우에 설치하기.

새빨간 글씨로 설치가 안된다고 투덜거린다.


1. pip install ./pgadmin4-2.1-py2.py3-none-any.whl


   Failed building wheel for pycrypto

   ...
 

2. The Voidspace Python Modules


   고맙게도 만들어 놓은 훌륭한 분이 존재하고 설치만 하면 된다.
   wheel 바이너리를 다운로드 하면 .zip 확장자를 갖는데 .whl로 변경 후 설치 진행.

  
1
pip install ./pycrypto-2.6.1-cp27-none-win_amd64.whl
cs

2017년 12월 1일 금요일

GDB - Missing separate debuginfos, use: debuginfo-install ...

어라 디버깅이 안 되네.


Missing separate debuginfos, use: debuginfo-install glibc-2.17-55.el7_0.3.x86_64 libgcc-4.8.2-16.2.el7_0.x86_64 libstdc++-4.8.2-16.2.el7_0.x86_64
이런게 gdb 실행 중에 보인다면.

1. debuginfos.


1
2
yum install yum-utils
debuginfo-install glibc libgcc libstdc++
cs


   그럼 문제가 없어진다.


2. 하지만 그래도 안되는 경우엔


   적절한 에디터로 다음 파일을 열어서 /etc/yum.repos.d/CentOS-Debuginfo.repo
   그 중 enabled 값을 1로 변경해 보라고 한다.

  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# CentOS-Debug.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
 
# All debug packages from all the various CentOS-7 releases
# are merged into a single repo, split by BaseArch
#
# Note: packages in the debuginfo repo are currently not signed
#
 
[base-debuginfo]
name=CentOS-7 - Debuginfo
baseurl=http://debuginfo.centos.org/7/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-Debug-7
enabled=1
#
cs