최근의 프로그램들은 설정 파일이나 데이터를 XML 파일에 저장하는 경우가 많다. 그런데, XML 파일 내용이 동일한 것 같은데도 해당 파일을 기반으로 동작하는 서로 다른 두 개의 프로그램이 다르게 동작하는 현상을 만났다. 차이점이라면 하나는 파일이 읽기 좋게 들여 쓰기가 잘 되어 있는 것이고, 다른 하나는 사람이 보는 파일이 아니므로 XML 규칙에 맞게 공백을 최소화한 것이다. XML이나 HTML에서 태그 규칙 말고 태그 외부의 공백은 구조와 내용에 아무런 영향을 미치지 않는다. 이런 상황에서 1만 라인이 넘는 파일 내용을 사람의 눈으로 비교할 수는 없는 노릇이고 diff 도구를 사용하면 좋겠지만 공백하나라도 차이가 있으면 서로 틀린 것으로 간주하여 메시지를 출력하므로 이런 상황에서는 단순 diff ..
우분투를 설치하면 기본 사용자를 만들지만 필요에 따라 별도의 사용자로 작업해야 할 경우가 있다. "sudo" 명령을 수행할 수 있는 사용자를 추가하는 방법을 메모해 둔다. ubuntu@ubuntu-DreamSys:~$ sudo adduser devuser [sudo] password for ubuntu: Adding user `devuser' ... Adding new group `devuser' (1001) ... Adding new user `devuser' (1001) with group `devuser' ... Creating home directory `/home/devuser' ... Copying files from `/etc/skel' ... New password: Retype new p..
라즈비안에서 간단하게 VNC 서버를 설정한 경험을 생각하며 우분투에서도 간단하게 되겠지 했는데 쉽지 않다. 우분투 서버를 사용하는 경우에는 대부분 콘솔모드에서 해결할 수 있으니 별 문제가 없었는데 원격 컴퓨터를 데스크톱 모드로 운영하면서 비주얼스튜디오와 같은 GUI를 사용하려니 VNC 서버를 설정하려 했는데 연속된 삽질 가운데서도 하나가 해결되면 또 다른 것이 막혀서 생각을 바꾸어 보기로 했다. 업무용으로 사용하는 컴퓨터는 윈도우를 사용하고 있으므로 굳이 VNC 뷰어를 통해서 접속하지 않고 윈도우에 내장되어 있는 원격 데스크톱을 사용하는 방법이 없을까? 했는데 역시 있었다. sudo apt install xrdp 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입..
우분투 데스크톱에서 형상 관리 도구인 서브버전(Subversion)을 설치하고 프로젝트 리포지토리를 만들고 서버를 가동해서 다른 컴퓨터에서도 해당 리포지토리를 통해서 형상관리하고 협업할 수 있는 환경을 만들고자 한다. 우선 "sudo apt install subversion"으로 서브버전은 간편하게 설치할 수 있다. 다음에 해야 할 작업은 리포지토리(저장소)를 만드는 작업인데 여러 프로젝트들의 형상 관리 정보가 모이는 곳이므로 용량이 넉넉한 적절한 공간을 저장소의 루트로 삼는다. 필자의 경우에는 홈 디렉터리에 svnrepo라는 폴더를 만들어 저장소 루트로 사용하기로 했다. 새로운 프로젝트의 형상관리를 시작하려면 저장소 루트로 이동하여 위의 그림과 같이 프로젝트 폴더를 만들고 "svnadmin create..
파이썬언어의 매력 중의 하나를 꼽으라면 작업에 필요한 도구들을 찾아보면 웬만한 것이 이미 존재하고 해당 도구를 pip 도구를 통해서 쉽게 설치할 수 있다는 것이다. 리눅스 환경이라면 더 간단하겠지만 윈도우에서 해당 환경이 준비되지 않았다면 다음의 포스팅을 통해서 어렵지 않게 환경을 준비할 수 있다. 일단 윈도우에 파이썬이 정상적으로 설치되고 경로까지 잡아졌는지 "python3.exe -V"로 버전을 확인한다. 파이썬 버전을 확인했으면 curl 도구를 활용하여 get-pip.py를 다운로드한다. 명령은 "curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py"를 사용하면 된다. 다운로드가 끝나면 위의 그림처럼 "python3.exe get-pip.py" 코드를 ..
CDROM과 DVD가 세상에서 사라지고 있는 시대에 살고 있다. 집집마다 CD나 DVD를 구워서 영화를 보관하던 시절이 그리 멀지 않은데 이제는 노트북도 PC도 CDROM 또는 DVD 드라이버는 아예 장착하지 않는다. 새것이든 자료가 있는 CD든 이제는 새 쫓는 장식으로 사용할 뿐 골동품이 되고 말았다. 그렇지만, 필자의 오래된 컴퓨터에는 드라이버가 장착되어 있어서 오래간만에 드라이버를 사용해 보기로 했다. 용도는 다락에 처박혀 있는 CD의 영화를 핸드폰에 넣기 위한 작업이다. 바이오스가 정상적으로 드라이브를 인식했다면 위의 그림처럼 /dev 폴더를 검색하면 cdrom과 cdrw 장치가 sr0로 연결되어 있음을 확인할 수 있다. CD 미디어를 드라이브에 삽입한다. sudo mkdir /mnt/cdrom ..
핸드폰으로 동영상을 찍기는 했는데 일부를 잘라내야 하는 상황이 생겼다. 자주 사용하지 않는 도구이다 보니 막막했는데 윈도우 운영체제 자체에 무비메이커와 같은 간단한 동여상 편집기가 있지 않을까? 하는 생각에 찾아보니 윈도우 10의 사진앱에 동영상 편집 기능이 있었다. 사진을 정리할 때 사용하는 프로그램에 동영상 편집 기능이 있다니 반가웠다. 일단 윈도우 메뉴에서 "사진"으로 검색하여 사진 앱을 실행한다. 앱을 실행하면 위의 그림처럼 메뉴에 [비디오 편집기]가 나온다. [비디오 편집기] 메뉴를 클릭한다. [새 비디오 프로젝트]를 클릭하고 적절한 이름을 입력한다. 그대로 [확인] 해도 된다. 비디오 프로젝트가 만들어지면 화면 중간의 [+추가] 버튼을 눌러서 편집하려는 파일을 선택한다. 파일을 선택하면 해당 ..
컴퓨터가 이상하다 싶을 때 컴퓨터 뚜껑을 열고 먼지를 털어 주는 것도 좋은 방법이겠지만 메모리나 디스크 내부 일부에 문제가 생긴 것이라면 원인을 찾기가 애매할 수 있다. 예전에는 메모리를 검사하려면 시스템 부팅 전에 BIOS 메뉴에서 메모리 검사를 수행하기도 했는데 지금은 BIOS에 따라 그런 메뉴 자체가 없는 경우도 있다. 이럴 때는 운영체제의 도구를 활용할 필요가 있다. 윈도우10의 경우 시작 메뉴(윈도우키만 누른 상태)에서 "메모리"라고 입력하면 위의 그림처럼 "Windows 메모리 진단" 앱이 나온다. 윈도우 7의 경우에는 우측의 그림처럼 "Windows 메모리"라고 입력해야 쉽게 검색할 수 있다. 일단 앱을 실행하면 위의 그림처럼 두 가지 중에 하나를 선택해야 하는데 둘 모두 시스템을 다시 시작..
여름철 무더위에 사람도 힘들어 하지만 노트북도 데스크톱도 서버도 올라가는 온도에 힘들어하기는 마찬가지이다. 에어컨이 빵빵한 곳에서는 문제가 되지 않지만 그렇지 않은 곳에서는 시스템이 죽는 원인 중의 하나가 바로 온도이다. 시스템을 느리게 만드는 원인이기도 하다. 먼지가 쌓여서 문제가 생기기도 하고, 온도를 식히는 팬이 망가져서 생기기도 한다. 그렇다면 마더보드의 온도를 미리 검사하는 방법은 무엇일까? 물론 시스템을 구동시키지 않은 상태라면 BIOS에서 여러 센서에서 올라오는 정보를 바탕으로 온도를 확인하고 대처할 수 있다. 그렇지만, 지금 필요로 하는 것은 정상 동작 중인 시스템에 문제가 없도록 하거나 시스템의 온도를 확인하고 싶은 것이므로 이를 수행하는 도구를 찾아야 한다. 운영체제 자체에서는 이러한 ..
리눅스 시스템이 조금 이상하다고 생각이 될 때 디스크를 검사하는 과정을 메모해 두고자 한다. sudo apt-get install smartmontools sudo systemctl start smartd 일단 "df -h"로 디스크 상황을 조회하고 위와 같은 명령으로 smartmontools를 설치하고 서비스를 가동한다. 위의 그림처럼 "systemctl status smartd" 명령을 사용하면 서비스 상태를 확인할 수 있다. "sudo smartctl -i /dev/sda1" 명령으로 위의 그림처럼 디스크의 세부 정보를 확인할 수 있다. ubuntu@ubuntu:~$ sudo smartctl -t short /dev/sda1 smartctl 6.6 2016-05-31 r4324 [i686-linux..
연식이 20년 가까이 된 컴퓨터에 리눅스를 설치하다 보니 오래전에 했던 삽질을 다시 하게 된다. 이제는 삽질도 어렵다. 메모하는 것이 세월의 물살에서 살아남는 것이 아닐까 싶다. 고정 IP를 설정하는 이유야 여러 가지가 있겠지만 내부 테스트나 기타 과정에서 서버 역할을 하는 컴퓨터의 IP가 DHCP로 인하여 바뀔 수 있다면 이것은 정말 귀찮은 일이다. 물론 공유기나 DHCP 서버 역할을 하는 곳에서 MAC주소를 보고 고정 IP를 부여하는 방법도 있지만 이 또한 관리 비용이 필요하다. 아무튼 고정 IP 설정을 하려면 인터페이스 카드의 이름을 알아야 하는데 위의 그림처럼 "ifconfig -a" 명령으로 확인할 수 있다. 리눅스 설치 후에 ifconfig 명령이 없다면 "sudo apt install net..
가상머신을 사용하다 보면 가상머신에서 작업하는 내용을 호스트 컴퓨터에서 활용하거나, 반대로 로스트 컴퓨터에 메모한 내용을 가상머신에서 사용하는 과정이 빈번하게 발생한다. 이 작업이 잘 동작하지 않으면 그야말로 짜증이 폭발한다. 일도 하고 싶지 않아 진다. 이럴 때 차분하게 상황을 점검해 볼 필요가 있다. 우선 위의 그림처럼 장치> 클립보드 공유가 "양방향"으로 설정되어 있는지 확인한다. 다른 확인 방법은 머신> 로그보기로 클립보드 공유 설정이 원하는 대로 이루어졌는지 확인한다. 클립보드 공유가 정상적 동작하고 있으면 위의 그림처럼 클립보드 관련 로그가 남는다. pkill -f VBoxClient; VBoxClient --clipboard 그럼에도 클립보드 공유가 정상적으로 동작하지 않는다면, 마지막으로 ..
호스팅을 하고 있다면 업체에서 알아서 설정해 놓으니 대부분 문제 될 것은 없지만 자체 서버에 APM 등을 설치하고 웹 테스트를 진행하는데 한글이 깨진다면 일단 두 가지를 확인해야 한다. $ locale LANG=ko_KR.UTF-8 LANGUAGE=ko_KR LC_CTYPE="ko_KR.UTF-8" LC_NUMERIC="ko_KR.UTF-8" LC_TIME="ko_KR.UTF-8" LC_COLLATE="ko_KR.UTF-8" LC_MONETARY="ko_KR.UTF-8" LC_MESSAGES="ko_KR.UTF-8" LC_PAPER="ko_KR.UTF-8" LC_NAME="ko_KR.UTF-8" LC_ADDRESS="ko_KR.UTF-8" LC_TELEPHONE="ko_KR.UTF-8" LC_MEASUR..
오래간만에 우분투 가상 머신을 열고 패키지를 설치하려는데 다음과 같은 메시지와 함께 설치가 되지 않는다. E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 2836 (unattended-upgr) N: Be aware that removing the lock file is not a solution and may break your system. E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it? 말인즉슨 unattended-upgr 프로세스가 수행 중이니 설치할 수 없다는 것이다. 윈도우 업..
자주 있는 일은 아니지만 가끔씩 리눅스 가상 머신을 설치하다 보면 비슷한 과정으로 시간을 허비하는 경우가 있다. 그래서 간단한 내용이지만 버추얼박스(VirtualBox)에 리눅스 가상 머신 설치하기를 글로 남겨 놓을까 한다. 1. 버추얼박스(VirtualBox) 최신 버전으로 업데이트하기 버추얼박스를 설치하지 않았다면 https://www.virtualbox.org/에서 다운로드하여 설치한다. 그런데, 이전 버전을 설치하고 있다면 최신 버전으로 설치할 것을 권장한다. 필자처럼 이전 버전을 사용하다가 힘들게 다운로드한 2GB가 넘는 시스템 이미지가 무용지물로 변할 수도 있다. 이전 버전의 버추얼박스로 사용했던 시스템 이미지를 높은 버전의 버추얼박스에서 사용한다고 동작하지 않는 문제는 없다. 필자의 경우 우..
리눅스 시스템에서 프로그래밍을 하다 보면 프로그램 빌드와 실행 이외에도 여러 가지 분석이 필요한 경우가 있다. 좋은 도구들을 활용할 줄 아는 것은 시간을 아끼는 것뿐만 아니라, 새로운 아이디어와 지식의 기반이 되기도 한다. 몇 가지 도구들을 메모해 둔다. ■ 파일 형태 파악하기(file) 위의 그림에서 보듯이 "which" 명령은 특정 실행 파일이 어디에 위치하고 있는지 확인할 수 있다. "file"명령의 인수로 file 실행 파일의 위치를 전달하면 ELF(Executable and Linkable Format) 파일, 즉 바이너리 파일이란 것을 알려주고 운영체제에 호스트 이름을 등록하는 /etc/hosts 파일을 인수로 전달하면 단순 아스키 텍스트 파일임을 알 수 있다. 실행 파일처럼 동작하지만 실제로..
윈도우 작업 관리자에서 CPU과 메모리 사용량이 많은 프로세스를 확인할 수 있었다면 리눅스 시스템에서는 top 명령을 활용할 수 있다. 콘솔에서 "top"를 입력하면 시작할 수 있고 일단 위의 화면처럼 시스템 모니터링이 시작되면 기본적으로 3초 주기로 화면을 갱신한다. [스페이스] 키를 누르면 즉시로 화면을 갱신하고 [d] 키를 누르면 기본 3초인 갱신 주기를 변경할 수 있다. 프로그램 종료는 [q] 키를 누른다. vi 에디터에 대한 경험이 있는 사용자라면 컨트롤 모드와 입력 모드가 구분되는 vi에디터처럼 컨트롤 모드에서 다양한 옵션을 활용할 수 있다. 필자의 경우 top 명령에서 중요하게 확인하는 것은 시스템 평균 로드로 "load average" 우측에서 최근 1분, 5분, 15분간의 로드를 확인할 ..
리눅스/유닉스 시스템에서 현재 시스템의 성능 사용 상황을 분석하는 간단한 방법은 위의 그림처럼 "top" 명령을 사용하는 것이다. 로드 평균으로 CPU의 사용 상황을 판단할 수 있고, 메모리의 여유도를 판단할 수도 있다. 무엇보다 시스템의 자원을 쏙쏙 빨아먹고 있는 프로세스는 최상단으로 올라오기 때문에 어떤 프로세스가 문제인지 어렵지 않게 파악할 수 있다. 물론 윈도에서도 작업 관리자> 프로세스 탭에서 CPU나 메모리를 가장 많이 소모하고 있는 프로세스를 확인할 수 있다. 문제는 시스템 자원이 거의 남지 않은 상황이라 작업 관리자 수행 자체가 어렵거나 아예 키보드 마우스가 먹통이 되어버린 경우이다. 그래서, 이런 경우에 적용할 수 있는 한두 가지 팁을 다루어 보고자 한다. 윈도+r 단축키를 누르고 "po..
평상시에는 라즈베리 파이에서 빌드해도 전혀 문제가 없던 프로젝트인데 갑자기 별다른 에러 코드도 없이 컴파일이 중단되었다. 이런 황당한 일이! 소스 코드의 오류가 아닌데 빌드가 되지 않다니.... 몇 번 재시도하면서 살펴보니 조금 사이즈가 큰 소스 코드를 컴파일하는 시점에 시스템 메모리가 거의 소모되면서 컴파일이 중단되는 것이었다. "g++: fatal error: 죽었음 signal terminated program cc1plus" 또는 "g++: fatal error: killed signal terminated program cc1plus" 메시지가 나올 뿐 별다른 힌트를 제공하지 않았다. 찾아보니 메모리 부족으로 인한 현상이 많다고 한다. 실제 메모리를 늘려주면 좋겠지만 가상 메모리를 늘리는 쉬운 ..
필요한 설정을 위해서는 먼저 터미널로 접속하거나 ssh로 접속해야 한다. 위의 그림은 ssh로 접속하여 sudo raspi-config를 입력한 것이다. 방향키로 "Interface Options"를 선택하고 엔터를 누른다. 방향키로 VNC를 선택하고 엔터를 누른다. VNC 서버 가동 여부에 [예]로 엔터를 누른다. [확인]을 누르고 첫 화면으로 돌아와서 [Tab] 키로 [Finish]로 이동하여 엔터를 눌러 종료한다. "netstat -tnlp" 명령으로 현재 시스템에서 수행 중인 서비스들을 확인할 수 있는데 22번 포트가 SSH이고 5900번이 VNC 서버이다. 이제 https://www.realvnc.com/en/connect/download/viewer/에서 VNC 뷰어를 다운로드하여 설치하고 접..
라즈베리 파이가 동작하려면 라즈베리 파이 OS가 들어가 있는 부팅용 SD카드를 만들어야 한다. 참고로 라즈베리 파이 OS는 라즈베리 파이 전용 운영체제로 이전에는 라즈비안(Raspbian)으로도 불렸다. OS 이미지 메이커로 간편하게 만들수 있는데 OS 이미지 메이커는 https://www.raspberrypi.com/software/에서 다운로드 받을 수 있다. 윈도우 버전을 다운로드하여 설치를 진행한다. [Install]로 설치 시작. 설치는 간단하게 끝난다. [Finish]로 설치 종료. 설치가 종료되면 자동 실행되며 추후 다시 사용할 경우에는 위의 그림처럼 시작>Raspberry PI Imager를 선택하면 된다. 운영 체제로 "Raspberry PI OS"를 선택한다. 저장소로 삽입한 SD카드 ..
나의 첫 가상 머신은 VMWare였지만 얼마 전부터 가상 머신으로 버추얼박스(VirtualBox)를 사용하고 있다. 성능도 안전성도 불편함이 없다. 무엇보다 미리 설치된 상태로 배포하는 이미지들이 많다 보니 필요에 따라 적절한 이미지를 다운로드하여 사용되니 참 편하기도 하다. 그런데, 오랜 시간 사용하던 리눅스 가상 머신의 실제 용량에 비해서 가상 머신 이미지의 용량이 상당히 컸다. 이것을 정리해서 줄여 보기로 했다. 117GB까지 늘어난 가상머신 이미지 파일이다. 그러나, 리눅스 내부의 용량은 10GB에 이를 뿐이고, 여러 가지 도구가 깔려있지만 이 정도가 맞다. ■ 리눅스 자체 파일 시스템 정리하기 일단 리눅스 자체에서 확보할 수 있는 공간을 확보하는 작업을 수행한다. 여기에는 불필요한 프로그램을 삭..
개발자에게 좋은 성능의 컴퓨터에서 작업하는 것은 스트레스를 줄이고 생산성을 높이는 아주 중요한 요소이다. 그렇지만 고성능의 CPU와 그래픽 카드, 대용량의 메모리를 누구나, 언제든지 장착할 수 있는 것은 아니므로 주어진 환경에서 할 수 있는 성능 개선 요소를 찾아 적용하는 것은 마땅해 시도해야 할 것이 아닌가 싶다. 필자의 경우 리눅스 시스템을 가상 머신으로 돌리고 호스트 시스템에서 웹 브라우저로 검색이라도 할라치면 페이지가 버벅거리기 시작했다. 물론 메모리가 넉넉하다면 해소될 수 있는 일이기는 하지만, 웹검색 과정에서 페이지가 버벅 거리는 상황의 하드디스크의 사용량을 보면 거의 100%를 오르락내리락했다. 생각해 보면 크롬 웹 브라우저가 페이지 캐시를 하면서 하드 디스크에 대한 지속적인 접근을 하기 때..
상당히 오래전에 저렴했던 가격에 구입했던 DVD 플레이어가 한대 있다. 물론 중국산 OEM 제품으로 기종은 "HD-6500 PLUS"이다. 다락에 쌓여 있는 오래된 CD에 담긴 영화들을 가끔씩 보곤 했다. 이 놈은 USB 메모리에 담긴 영화도 볼 수 있으므로 그 옛날 추억의 미드인 에어울프 시리즈도 보았었다. 문제는 어딘가에 담겨 있던 한국 드라마를 보려고 했더니 파일을 아예 인식을 못한다. 물론 컴퓨터에서는 잘 플레이할 수 있다. 그래도 보는 맛이 있지 VLC 미디어 플레이어로 이 방식, 저 방식으로 파일을 변환을 해보았지만 여전히 플레이어에서는 파일을 인식할 수 없었다. 결국, "되는 방식"으로 인코딩하는 것이 간단한 방법이므로 잘 되는 미디어의 속성을 살펴보니 비디오 인코딩은 XVID이었고, 오디오..
응용 프로그램을 개발하다 보면 직렬 포트(Serial Port)를 사용하는 경우 다양한 어려움을 겪게 되는 경우가 많다. 장애도 많고, 테스트하기도 쉽지 않다. 스펙에 맞게 작성해 놓았더라도 상대편 장비에서 약속한 대로 반응하지 않으면, 양쪽에서 서로의 잘못이라고 문제를 떠넘기기가 쉽다. 이러한 경우를 대비해서 내가 보내는 전문은 스펙대로 작성하고 있는지 확인하고 상대편의 다양한 전문에 대한 대응은 적절한지를 확인할 필요가 있다. 그런데 상대 장비에 대한 접근이나 테스트가 어려운 경우는 가상 포트를 통해서 상대 장비를 에뮬레이트 하는 방법을 통해서 테스트를 진행할 수 있다. 오픈소스 프로젝트인 "Null-modem emulator"를 사용하고 싶었지만 윈도우 10에서는 한계가 있었다. 시간도 없는 관계로..
QT 응용 프로그램을 우분투 리눅스에서 개발하다가 중간중간에 이상한 경고 메시지를 만나게 되었다. "Gtk-Message: 14:16:49.392: GtkDialog mapped without a transient parent. This is discouraged." 메시지 내용을 보면 내가 프로그램을 작성을 하면서 뭔가를 잘못한 것 같은데....... 하는 추측을 하게 한다. 문제를 해결하려면 일단 현상을 재현하는 것이 중요하므로 언제 이 경고 메시지가 나오는지 여러 번 테스트를 진행했다. 드디어 현상이 재현 되었는데, 알고 보니 위의 그림과 같은 색상 선택창을 띄울 때마다 발생하고 있었다. 폰트 선택이나 색상 선택처럼 QT 대화창을 통해서 값을 선택받고자 하는 경우에 이런 현상이 발생하는데, QCol..
닷넷(.NET) 프레임워크가 윈도우즈를 넘어서 리눅스 진영까지 영향력을 확대하는 상황임에도 불구하고 어떤 닷넷 프로그램들은 내 컴퓨터에서 실행할 수 없는 상황이 발생하고는 합니다. 바로 닷넷 프레임워크의 버전 때문입니다. 닷넷 응용 프로그램의 개발 시점에서도 어떤 닷넷 프레임워크의 버전을 기준으로 할지를 지정하기 때문에 당연히 닷넷의 버전은 매우 중요한 요소입니다. 그래서 요즘에는 프로그램을 설치하기 전에 "시스템 요구 사항"에 있는 닷넷 프레임워크의 버전을 반드시 확인해야만 합니다. 현재 내 시스템에 설치된 닷넷 프레임워크를 확인하는 방법으로 닷넷 디텍터(.NET Detector)를 실행시키는 방법, 레지스트리를 확인하는 방법, 프로그램 추가/삭제에서 설치된 목록을 확인하는 방법, 닷넷 디렉토리의 목록..
"리눅스 서버(우분투) 설치하기", "리눅스 서버(우분투)에 서브버전 설치하기", "리눅스 서버(우분투)에 트랙(Trac) 설치하기" 에 이은 글입니다. 앞선 포스팅에서는 Ubuntu 16.04 32비트 서버 시스템을 설치하고 서브버전을 웹서버 기반으로 접근할 수 있도록 준비한 다음에 파이썬 및 웹 기반 협업 개발 시스템인 트랙(Trac)을 설치했습니다. 이번 글에서는 가장 기본적인 웹 서비스 환경인 APM(Apache + PHP + MySQL) 환경을 apt-get으로 간편하게 설치하고 MySQL DBMS를 웹 기반으로 관리할 수 있는 도구인 phpMyAdmin을 설치하는 과정을 다룹니다. apt-get 기반으로 시스템 설치 작업을 수행하려면 항상 sudo apt-get update 명령으로 업데이트 ..
"리눅스 서버(우분투) 설치하기"와 "리눅스 서버(우분투)에 서브버전 설치하기"에 이은 글입니다. 이번 글에서는 대표적인 협업 개발 시스템의 하나인 파이썬 기반의 트랙(Trac)을 설치하는 과정을 다룹니다. 시스템을 효과적인 프로젝트 관리에 활용 할 수 있을 것입니다. ■ WSGI 모듈 및 Trac 설치 파이썬으로 개발한 Trac 시스템을 웹으로 서비스하는 다양한 방법이 있지만 이번 글에서는 WSGI 모듈을 적용합니다. 아파치 웹서버의 WSGI(Web Server Gateway Interface)과 함께 Trac은 sudo apt install trac libapache2-mod-wsgi 명령으로 설치합니다. The following additional packages will be installed: ..
"리눅스 서버(우분투) 설치하기"에 이은 글입니다. 형상 관리 시스템중의 하나인 서브버전(Subversion)을 설치하고 형상 관리 리포지토리를 생성한 다음에 다른 컴퓨터에서 네트워크로 체크아웃 받고 커밋하는 과정까지를 다룹까 합니다. 우분투 서버에 서브버전 및 트랙 설치는 Ubuntu 16.04 32비트 버전에서 수행 했습니다. 모든 설치 작업 이전에는 일단 sudo apt-get update 명령으로 업데이트를 수행한 다음에 작업을 진행합니다.sudo apt-get update받기:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB]기존:2 http://us.archive.ubuntu.com/ubuntu xenial InRele..