CentOS7을 설치하면 기본적으로 Python 2.7.5 버전이 설치된다.

 

2.x 버전의 Python도 사용하는데는 그닥 큰 무리가 없지만, 최근 3.x 버전에서 제공하는 신규 모듈들을 사용하기 위해서는 3.x 버전 Python 설치가 필요하다. (예를 들면...최근 3.8에 있는 공유메모리...아니면 AI 모듈들...인공지능 서비스 회사에 근무하는 나에게는 반드시 필요한...)

 

구글링하면 엄청나게 많은 Python 3.x 설치 블로그들이 검색된다. 

이 포스팅도 그저 나를 위한... (CentOS 설치할 때마다 매번 정확한 블로그를 찾기가 불편해서..)

 


CentOS7 설치 후 Python의 버전을 확인해 보자.

CentOS7의 기본 설치된 python 버전

 

설치는 아래 과정을 거친다.

  1. python.org에서 최신 3.x 버전 python 설치 파일을 다운로드 한다.
  2. 다운로드 한 파일을 풀어 make;make install로 설치를 진행한다.

 

설치 진행에 앞서 아래 Package들을 설치해 준다. (make install 할 때 문제가 생긴다고 함.)

 

  • zlib, zlib-devl, libffi-devel

zlib, zlib-devel, libffi-devl 설치

  • openssl, openssl-devel

openssl, openssl-devel 설치

 

설치가 완료되면 이제 python 3.x 버전을 설치해 보자.

https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz

wget을 통해 설치 파일을 다운로드 한다.

다운이 완료된 파일은 아래 명령어로 압축을 푼다.

$ tar -xvzf Python-3.8.1.tgz

파일 압축풀기가 완료되면 아래와 같이 Python-3.8.1 디렉토리가 생성되고, 그 안에 보면 다양한 package 구성파일들을 볼 수 있다.

Python 3.8.1 구성 파일 리스트

이제 설치를 진행해 보자.

 

순서는 configure -> make > make install 을 차례대로 진행한다.

 

Configure 실행

$ ./configure --enable-optimization으로 실행해도 된다.

make, make install 실행 (root 권한 필요)

 

make와 make install이 오류 없이 모두 정상적으로 실행 완료 되었다면 아래와 같이 python 버전을 확인해 본다.

CentOS7에 설치된 python 버전

현재 시스템 기본 파이썬으로 python 2.7.5가 설정되어 있다.

 

새로 설치한 python 3.8.1 버전을 기본 python으로 사용하려면 /bin/ 밑의 python 링크 하나만 변경해주면 된다.

python 2로 되어있던 python 심볼링 링크를 python 3으로 변경한다.

그리고 python 버전과 실제로 접속하면...

Python 3.8.1로 바뀐것을 볼 수 있다.

 

새로 적용된 python 3.8.1

 

 

Posted by [ 브랜든 ]
,

MariaDB 설치 이후 Database 생성과 해당 Database의 사용자 계정을 생성해 보자.

아래 내용은 구글링하면 너무나도 많은 정보들이, 더 정확하고 양질의 정보들이 나오는 내용들이라 굳이 나의 편의성에 의해 기록해 놓는다. 

 

Database 생성

[ STEP 1 ] Database 접속

 

$ mysql -uroot

 root 계정으로 mysql에 접속한다.

root 계정으로 MariaDB 접속

[ STEP 2 ] Database 생성 및 확인

 

MariaDB [(none)]> CREATE DATABASE 데이터베이스명;

MariaDB [(none)]> SHOW DATABASES;

신규 생성된 DATABASE 정보

[ STEP 3 ] Database 선택

 

처음 접속했을 때 'MariaDB [(none)]'에서처럼 'none'으로 어떤 DB도 선택되지 않았음을 확인할 수 있다.

USE 명령어로 사용할 DB를 선택할 수 있으며, 접속하면서 DATABASE를 지정할 수도 있다.

 

MariaDB [(none)]> USE LATS

특정 DATABASE 선택

접속할 때 DATABASE를 선택하고 싶을 경우 DATABASE 명을 입력해 주면 된다.

 $ mysql -u계정 -p비밀번호 LATS

 

사용자 계정 생성

생성한 DATABASE에 대한 사용자 계정을 생성해 보자.

 

[ STEP 1 ] 사용자 계성 생성 및 권한 부여

 

MariaDB [선택DB]> CREATE USER '계정명'@'%' IDENTIFIED BY '비밀번호';

MariaDB [선택DB]> GRANT ALL PRIVILEGES ON DB명.* TO '계정명'@'%';

사용자 계정 생성 및 DB 권한 설정

로컬에서도 접속 가능하도록 localhost를 추가해준다.
MariaDB [선택DB]> CREATE USER '계정명'@'localhost' IDENTIFIED BY '비밀번호';

 

[ STEP 2 ] 사용자 계정 모든 IP 접속 허용

 

MariaDB [선택DB]> GRANT ALL PRIVILEGES ON *.* TO '계정명'@'%' IDENTIFIED BY '비밀번호';

사용자 계정 외부 접속 IP 허용 설정

특정 IP 대역만 허용하고 싶을 경우 아래와 같이 실행한다.

 GRANT ALL PREVILEGES ON *.* TO '계정명'@'192.168.%' IDENTIFIED BY '비밀번호';

 

 

다음 포스팅은 외부 IP를 통해 위의 계정으로 Database에 접근하는 것을 포스팅 하려한다.

참고로 위의 DB는 내부 공유기에 연결되어 있는 라즈베리파이에 설치되어 있으며, 외부접속 시 공유기를 거쳐야 하기때문에 DNS 설정과 Port Forwarding 설정 후 진행해야 한다.

(예전에 사용하던 DNS 서비스가 만료되었는데...무료 DNS 서비스를 찾아봐야지....)

Posted by [ 브랜든 ]
,

라즈베리파이 3에 CentOS 설치 후, MariaDB, 그리고 Python3을 설치하려고 하는데...

디스크 용량 부족 메시지가 떳다.

 

???? 

 

내 SD카드는 분명 64G짜리인데....

설마 하는 마음에 Disk 사이즈를 확인해 보았다.

df -h 명령어로 OS 디스크 용량 확인.

응..?? root에 3.7GB로 잡혀있다. 나머지 나의 60GB는 어디로 사라졌느뇨....

 

이래저래 구글링 해보니... 최초 디스크 용량이 자동으로 작게 잡힌다고 하는데... 생각해보니 처음 CentOS 부팅했을 때 Desktop에 CentOS 설치했을 때와는 달리 파티션 설정하는 부분이 존재하지 않았었다. 

 

Partition을 다시 설정해야 할 듯하다. 


위에서 boot 공간이 '/dev/mmcblk0p1'로 잡혀 있을 것을 볼 수 있다.

즉, mmcblk0 중에서 p1(Partition1)이 해당 영역으로 잡혀있다는 것이다. 그럼 나머지 공간은....?

 

lsblk 명령어로 살펴보자.

'mmcblk0'의 partition 분리 정보.

boot 가 Partition 1, Swap이 Partition 2, 그리고 root가 Partition 3으로 잡혀있다. 

그리고 나머지 59.6 GB는 할당되지 않은 공간으로 되어있다. (참... 이런 것까지 수동으로 해보긴 처음...)

 

'parted /dev/mmcblk0' 명령어로 mmcblk0에 대한 Partition 작업 모드로 전환한다.

print free 실행 시 현재 할당된, 그리고 할당되지 않은 Partition 정보를 볼 수 있다.

 

소중한 59.2GB의 FREE 영역이 보인다.

구글링 해보니... 이미 할당되어 있는 root Partition(Partition 3)을 삭제하고! 다시 생성하는 방식인데... 이미 시스템 파일들이 잡혀있는 공간인데 괜찮을지 걱정이 되지만... 방법이 없으니 강행해야 한다.

 

'fdisk /dev/mmcblk0' 명령어로 partition 작업을 진행한다.

 

Linux에 해당하는 /dev/mmcblk0p3을 삭제하고 다시 생성해준다.
d(delete) > 3 명령어로 Partition 3이 삭제된 것을 확인한다.

이제 n(add a new) 명령어로 다시 partition을 잡아준다.

 

n(new) > 3 (partition number) > start block size > end block size를 입력해서 새로운 Partition을 만든다.

새로 만들어진 Partition 3 (/dev/mmcblk0p3)을 확인해 보면 용량이 대폭 늘어났다.

 

위 작업에서 중요한 건 Partition 3의 Start Block 값을 기존과 같이 Partition 2 (/dev/mmcblk0p2)의 다음 값으로 지정해야 한다는 것이다. (default가 2048로 되어 있기 때문에 무심코 Enter를 누르면 안 된다.)

 

이제 저장을 하면 재부팅을 하라는 경고문이 뜬다.

 

reboot을 하라는 경고문이 뜬다.

시스템 Reboot을 진행해볼까... 잘하고 있는 것인가... 자꾸 의문이 든다...

걱정과는 달리 재부팅이 잘 된다. 변경사항이 반영이 되지 않았으니... 당연히 재부팅엔 문제가 없었...

아직 /dev/root의 사이즈가 변경되지 않았다.

이제 resize2fs 명령어를 실행시켜 새로 할당한 partition 사이즈를 적용한다.

적용 후 15306168 block들이 늘어났다.

뭔가가 되어가는 거 같다.... 이제 용량이 정말 늘어났는지 확인해 보자.

54GB로 대폭 늘어난 /dev/root/ Partion 용량.

이제야 소중한 Disk 용량을 전부 사용할 수 있게 되었다.

 

 

Posted by [ 브랜든 ]
,

처음 라즈베리파이를 구매했던 이유는 내 개인적인 개발 서버가 필요했기 때문이었다. 

C 컴파일이나 쉘 스크립트, 그리고 Python 정도만 돌아가면 됐었기에 라즈베리파이로도 충분했다.

(STT 처리 모듈 테스트를 위해 값 비싼 GPU도 있으면 좋겠지만...회사 서버를 사용하는 걸로...)

 

가끔 On-Premise 사업을 진행하면서 운영에 필요한 Utility들을 짬짬히 개발하거나 내 Library 소스를 관리하는데에 많이 이용한다. 

 

Database를 설치해두면 개인적으로 매우 유용한 '서버'로써의 라즈베리파이를 쓸 수 있다. 게다가 공유기 Port Fowarding과 외부 접근 가능 계정을 할당하여 사용한다면 언제 어디서는 사용할 수 있는 DB 서버가 된다. 

 

나는 가장 널리 사용하는 MySQL과 동일한 소스코드 기반으로 동작하는 MariaDB(무료니까...)를 설치해 사용하도록 해야겠다. 

 

https://ko.wikipedia.org/wiki/MariaDB

 

MariaDB - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. MariaDB는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)이다. MySQL과 동일한 소스 코드를 기반으로 하며, GPL v2 라이선스를 따른다. 오라클 소유의 현재 불��

ko.wikipedia.org


[ Step 1 ] MariaDB yum 'repository' 등록

 

'repository'는 패키지들을 모아 놓은 저장소라고 생각하면 될 듯하다.  작업은 당연히 root 권한으로 해야한다.

 

/etc/yum.repos.d/MriaDB.repo 파일 생성

10.3 버전을 base로 설정했는데 원하는 버전으로 변경해도 된다.

 

[ Stem 2 ] yum 업데이트 실행

 

MariaDB.repo 파일 생성 확인 후, yum update 명령어를 실행

MariaDB repository 설정 추가 후 'yum update'를 실행하면 mariadb 관련 update가 진행됨을 볼 수 있다.

그리고 'yum repolist' 명령어로 MariaDB repository가 등록되어 있는지 확인한다.

 

중간에 mariadb 관련 repository 등록 상태를 확인할 수 있다.

 

[ Step 3 ] MariaDB 설치 및 확인

 

yum install mariadb-server 명령어로 MariaDB를 설치한다.

 

mariadb-server만 설치가 된다. 다른 블로그를 찾다보면 mariadb-client도 같이 입력하도록 한 사람들이 많다.

 

설치가 완료된 후에는 rpm -qa 명령어로 잘 설치가 되었는지 확인한다.

설치된 MariaDB 관련 패키지 목록.

 

[ Step 4 ] MariaDB 실행 및 접속 확인

 

systemctl 명령어로 MariaDB를 실행한다. 

 

'active' 상태의 MariaDB 확인.

 

root로 MariaDB 접속을 확인한다.

 

중간에 mysql.sock 관련해서 많은(?) 우여곡절이 있었지만, MySql과 MariaDB는 조금만 구글링해보아도 많은 솔루션이 있기 때문에 설치 자체는 어렵지 않다. 

 

다음 포스팅은 외부접속 계정 생성과 실제 외부 접속을 진행해 보도록 해야겠다. 

 

 

Posted by [ 브랜든 ]
,

그저 라즈베리파이3에 주식 자동매매 프로그램을 위한 DB 서버용 리눅스 설치를 하려고 했을 뿐인데

이런 글을 쓰고 있게 될 줄은 몰랐다. 

 

리눅스 재설치때 마다 블로그 보면서 다시 설치하면 되니 그냥 기록해 두자. 

 

나는 원래 Server-Side C언어 개발자였기 때문에 개인적으로 만들어서 갖고 있는 C언어 라이브러리들이 

조금 있다. (Logger, Statistic, DB Handler, Transaction Manager 등등...)

언제 사용할 기회가 있을지 모르니 C/C++ 컴파일러를 설치해 둬야겠다. 

(실은 지금도 실시간 STT(음성인식) 처리를 위한 RTP 패킷 캡쳐 모듈을 C++로 만들어놔서 C++ 컴파일러가 필요하긴 하다. 최근 동일 기능의 Python 모듈을 새로 설계해서 개발하고 있긴 하지만...)

 


 

Step 1.  Available Group 확인

 

현재 시스템의 Available Group에 Development Tools가 존재하는지 확인한다.

'Available Group'의 'Development Tools' 확인.

 

Step 2. Development Tools 설치

 

yum group install "Development Tools" 명령어로 C/C++ 컴파일러 관련 모든 패키지들을 한번에 설치한다.

 

설치할 패키지들이 매우 많다. 56개....

Step 3. 컴파일러 설치 확인

 

설치가 완료된 후에는 gcc --version 명령어로 설치된 버전을 확인한다. (gcc/g++ 동일하다.)

 

 

Step 4. 예제를 통해 소스 컴파일 하기

 

아래와 같이 C/C++ 언어 예제 소스를 만들어 컴파일을 해보자.

 

프로그래밍의 기본, "Hello, World!" 출력 프로그램 작성. 

 

컴파일~~

 

출력된 "Hello, World!" 문자열.

gcc를 통해 test.c 파일을 컴파일 하면, a.out 파일이 생성되고, 이 파일을 실행시키면 "Hello, World!"가 출력된다.

 

오랫만에 짧게 C언어 끄적였는데 (요즘엔 Python을 주로 쓰고 있어서...) 그래도 손가락이 기억하나 보다.

 

 

Posted by [ 브랜든 ]
,

라즈베리파이에 설치한 CentOS 7의 기본 셋팅을 하려고 한다. 

 

실은 이미 한번 진행했다. minimal 버전을 설치했기 때문에...

결국 실패하고...아니 포기하고....(하나하나 설정해 주는게 이렇게 빡셀 줄이야...)

다시 GNOME 버전으로 설치했다.

 

2020/07/12 - [Whatever] - 라즈베리파이(Raspberry-Pi) 3B+에 CentOS 7 설치하기

 

라즈베리파이(Raspberry-Pi) 3B+에 CentOS 7 설치하기

작년에 구매하여 간이 서버로 사용하고 있는 '라즈베리 파이'가 하나 있다. 개인적인 개발 서버가 필요하여 구매하였고, 집 공유기에 물려 365일 24시간 돌아가고 있는 아주 고마운 녀석이다. 이 �

brandon-dev.tistory.com

 

어찌나 편하던지...

친절하게 X window로 바로 부팅해준다. 

 

라즈베리파이에서 실행된 X-Window

먼저 root 비번부터 변경해 보자. 

 

su - passwd 명령어를 통해 root의 비밀번호를 변경한다. 참고로 초기 root 비밀번호는 'centos'로 되어 있다. 

 

다음은 yum 의 update 이다. 

 

yum update는 X-Window에서 'Application Update' 항목을 통해 진행할 수도 있고, 콘솔에서 'yum update -y' 명령어를 사용해서 진행할 수도 있다. 콘솔의 경우 당연히 root 권한으로 실행해야 한다.

 

나는 X-Window에서 바로 OS update 알림이 떠서 실행한 후에, 콘솔에서 다시 update를 실행했다. (당연히 콘솔에서는 설치되는게 없었다.)

Hostname을 변경해 볼까. Default 값인 'localhost'가 썩 맘에 들지 않는다. 

라즈베리파이니까 'raspberry'로 바꿔 보자.

 

방법 1. hostname 명령어

hostname 명령어를 사용하여 raspberry로 바꿨지만...OS 재부팅을 하면 다시 초기화 된다. 

 

방법 2. /etc/sysconfig/network 파일 수정

해당 파일에 HOSTNAME 필드가 없다면, 추가해주면 된다. 재부팅을 해보자.

엇...변경안됐다....

CentOS 7에서는 아래 방법으로 변경해야한다.

 

방법 3. hostnamectl set-hostname 명령어 사용

귀찮지만...다시 재부팅해보자.

이제 변경된 Hostname으로 표시됨을 확인할 수 있다. 

Posted by [ 브랜든 ]
,

작년에 구매하여 간이 서버로 사용하고 있는 '라즈베리 파이'가 하나 있다.

 

개인적인 개발 서버가 필요하여 구매하였고, 집 공유기에 물려 365일 24시간 돌아가고 있는 

아주 고마운 녀석이다. 

이 녀석 덕분에 사업 진행에 있어 필요한 간단한 유틸이나 배치 프로그램을 어디서든, 생각날 때마다 바로바로

개발하고 테스트할 수 있어서 많은 시간을 절약할 수 있었다. 

 

처음에는 CentOS가 설치되지 않는 줄 알고...(처음 샀을때 우분투MATE 얘기만 나와서...)

우분투MATE를 설치하여 사용하고 있었는데

최근 이녀석을 포맷할 일이 생겨 이왕 설치할거 익숙한 CentOS를 설치하기로 했다. 


 

 

[ 라즈베리 파이에 설치 가능한 CentOS 찾기 ]

 

https://wiki.centos.org/action/show/Manuals/ReleaseNotes/CentOS7.2003?action=show&redirect=Manuals%2FReleaseNotes%2FCentOS7

 

Manuals/ReleaseNotes/CentOS7.2003 - CentOS Wiki

Manuals/ReleaseNotes/CentOS7.2003 (2020-06-01 21:42:53에 TrevorHemsley가(이) 마지막으로 수정)

wiki.centos.org

위에 링크에서 '찾기' -> RaspberryPi를 입력하면 라즈베리파이용 CentOS가 보이게 된다.

 

라즈베리 파이 3용 CentOS. 중간에 URL 부분으로 들어가면 된다.

참고로 CentOS는 아직 라즈베리파이 3에서만 설치되는 것 같다. 

라즈베리파이 4에 설치하려는 블로거를 본적이 있는데, 지금은 어떨지 모르겠지만 그때는 실패했었다는 걸 봤었다.

 

라즈베리 파이용 CentOS Minimal로 설치한다.

 

나는 부팅 USB 만들때 주로 'Rufus'를 사용하는데, 여러가지 프로그램들이 있겠지만 내가 생각하기엔 이 프로그램이 가장 편하다. 

 

Rufus로 마이크로SD 카드에 CentOS 굽기.

이제 라즈베리파이 3B+에 USB를 꽂고, 전원을 껴보자.

별 다른 조작 없이 USB를 먼저 꽂고 전원만 꽂으면 자동으로 설치를 시작한다.

라즈베리파이에 CentOS 설치 화면

정상적으로 설치가 잘 되어가고 있다. (캡쳐가 안되서....아니 할 줄 몰라서...사진으로...)

 

CentOS 설치 후 로그인 완료 화면

설치가 완료 되면 로그인 화면이 뜨게 되고 minimal 설치라 사전에 사용자 정보를 등록하지 않아

root 계정으로 로그인 해야한다. 

  • 계정 : root

비밀번호  : centosCentOS 7 설치는 완료 되었고...minimal 설치 후 필수 설치 요소들은 다음 포스팅에서

다시 시작해야겠다.

 

근데 아래처럼 메시지가 계속 찍힌다...

전력부족...

지금 사용하는 놈은 5V / 2A인데...

우분투 사용할때는 문제 없었는데 CentOS가 전력을 더 많이 먹네...

 

사실 라즈베리파이 3의 권장 어댑터는 5V / 3A 다. 바로 새로 구매해야겠다.

 

 

Posted by [ 브랜든 ]
,