본문 바로가기

System

리눅스의 종류와 선택 출처 : http://crampstory.tistory.com/40 리눅스를 처음 설치하시려는 분들께서 제일 많이 고민하시는 것이 "어떤 리눅스를 깔아야 할까?" 입니다. 저 역시도 마찬가지로 고민을 많이 했습니다. 7년전쯤에 리눅스를 처음 쓸 당시에 오픈수세(OpenSUSE)를 사용했었습니다. 한동안 리녹스를 사용할 일이 없다가 요즘 들어 다시 깔았는데 그때 보다는 더 많은 종류의 리눅스가 존재해 적잖이 놀랐습니다. 이 포스트에서 리눅스 배포판을 전부 다룰 수는 없으므로 제가 사용해본 리눅스를 위주로 리눅스 선택에 도움이 되는 글을 써보도록 하겠습니다. 1. 우분투(Ubuntu) 우분투는 데비안(Debian) 리눅스를 기반으로 제작된 리눅스입니다. 4월과 10월에 한번식 메이져 업데이트가 이루어집니다... 더보기
GCC]gcc compile option 출처 : http://www.dreampharos.com/ [gcc 컴파일]1) gcc 파일명(*.c) : Default로 out 파일이 생성된다. (ex a.out) 2) gcc -c 파일명(*.c) : 오브젝트 파일을 생성한다. 3) gcc -c 오브젝트_파일명(*.o) 파일명(*.c) gcc -o 실행파일명(*.out) 오브젝트_파일명(*.o) 4) gcc -o 실행파일 파일명(*.c) : 실행 파일을 만든다. (3번을 한줄로...) (소스 파일 컴파일 → 오브젝트 파일 생성 → 실행파일 생성 → 오브젝트 파일 삭제) =================================================================================================== [g.. 더보기
samba 설치 12.04 설치 원본 출처 : http://norux.me/5 14.04 원본 출처 : http://logon.tistory.com/229 당연한 얘기겠지만 우선은 같은 네트워크 안에 있어야 가능하구요 (ex. 같은 공유기 내에서 연결) 1. 패키지 설치samba에 필요한 패키지를 먼저 설치 해 주도록 합시다.12.04 version$ sudo apt-get install samba smbfs 14.04 이상 version$ sudo apt-get install samba samba-common cifs-utils위 패키지가 설치 되었다면 설정을 하도록 하겠습니다. 2. samba 설정$ sudo vi /etc/samba/smb.conf 위 의 smb.conf 파일을 찾아서 들어가서 맨 아래쪽에 다음과 .. 더보기
리눅스에서 명령어로 IP 등록하기 (ifconfig) ip 설정하기# ifconfig eth0 192.168.123.2 netmask 255.255.255.0 up 게이트웨이 등록하기# route -FC // 이러면 안될지도 모른다...# route add default gw 192.168.0.1 # route -FC // 이거 안해도 사실 게이트 웨이 됨... 출처 : http://intelisd.tistory.com/entry/ifconfig-%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4%EC%84%9C-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%EC%9E%A5%EC%B9%98-eth0-%EC%9E%A5%EC%B9%98-%ED%99%9C%EC%84%B1%ED%99%94 더보기
ARM 크로스 컴파일 환경 구축하기 참고로 필자의 서버환경은 32bit - 우분투 11 버젼을 활용하였다. 기본적으로 우분투는 apt-get 을 이용하여 크로스 컴파일 환경 구축을 간편하게 해줄 수 있다. ------------------------------------------------------------------------------------------root@ubuntu:~/test# apt-get install gcc-arm-linux-gnueabi 이후 간편성을 위해 심볼릭 링크 정도 걸어두면 편하다. root@ubuntu:~/test# whereis arm-linux-gnueabi-gcc arm-linux-gnueabi-gcc: /usr/bin/arm-linux-gnueabi-gcc /usr/share/man/man1/.. 더보기
C/C++ library 만들기 1) Library(라이브러리) 반복적으로 사용하는 기능들을 함수로 정의하여 필요할 때 마다 호출하여 사용하는 것이 좋다. 이러한 것들을 모아 놓은 것을 Library라고 한다. library 는 보통 index(목차) + files(a.o + b.o + c.o + ....) 로 구성되어 있다고 볼 수 있다. unix/linux 에서 Library 파일은 일반적으로 lib 로 시작한다. C언어 표준은 일반 프로그래머들이 공통적으로 사용할 만한 Library 들을 제공하며, 이런 standard library(표준 라이브러리)라고 한다. unix/linux에서 standard library 들은 보통 /lib, /usr/lib 에 존재하고 lib*.a(static library, 정적 라이브러리), lib.. 더보기
gcc undefined reference to 오류 처리 하기 LINUX에서 순서가 매우 중요한 것 같습니다. T.T gcc test.c test.c:(.text+0x49): undefined reference to test.c:(.text+0x71): undefined reference to test.c:(.text+0x82): undefined reference to test.c:(.text+0xaa): undefined reference to test.c:(.text+0xbb): undefined reference to test.c:(.text+0xe3): undefined reference to test.c:(.text+0xf4): undefined reference to test.c:(.text+0x130): undefined reference to tes.. 더보기
라이브러리 만들기 1, 라이브러리(Library)라이브러리는 유사한 기능을 하는 컴파일된 함수나 클래스의 집합입니다. 이미 컴파일되었기 때문에 다시 컴파일할 필요없이 다른 목적파일이나 라이브러리와 링크만 해서 사용할 수 있습니다.라이브러리의 종류정적 라이브러리(lib) : 링크 시간에 실행파일(exe)에 포함된다.같은 라이브러리도 실행파일마다 각각 포함된다.동적 라이브러리(dll) : 실행파일에 포함되지 않고 실행 시간에 메모리에 로드된다.같은 라이브러리는 공유되며 각각 메모리를 차지하지 않는다. 아래 두 그림은 정적 라이브러리와 동적라이브러리의 동작 방법입니다. 정적 라이브러리는 링크 시간에 실행파일에 포함됩니다. 기억하세요. 동적라이브러리는 실행시간에 실행 프로세스 주소 공간으로 로드됩니다. 2, 라이브러리 만들기라이.. 더보기
Make 기반 빌드 시스템: Makefile 기초 Makefile 기초간단한 예제리눅스 상에서 IDE 없이 C/C++로 일반적으로 어떤 실행 프로그램을 만들 때에는, 보통 gcc 와 make 를 가지고 시작합니다. 적당한 오픈 소스 프로젝트의 소스에 있는 Makefile를 기반으로 시작할 수 있겠지만, make에 대한 기본적인 공부도 할겸, 일단은 간단한 예제로부터 시작해 보겠습니다.간단한 네트워크 프로그램을 작성할 일이 생겼다고 해 보죠. 다행히 여러분은 이미 예전에 작성해 둔 소켓 모듈(MySocket.c, MySocket.h)들이 있기 때문에, 그리 어려운 일은 아닙니다. MyClient.c이라는 파일에다 MySocket.h를 include해서 socket 모듈에 있는 socket 관련 함수를 쓰고, 몇 가지 필요한 기능만 추가해서, MyClien.. 더보기
남의 라이브러리 컴파일시 막힐 경우 남의 라이브러리를 이용하여 컴파일을 할 경우, 막힐때가 있다.이번에 막힌건 남의 라이브러리를 사용하여 개발을 할때에/라이브러리경로/라이브러리이름.a: could not read symbols: File format not recognized라는 에러가 나온 경우이다.에러의 원인을 몰라서 검색을 계속 하던중, 64비트로 컴파일 된것이 아닌가 라는 생각이들었고, 아는분에게 물어봤는데 >file 아카이브.a나 >objdump -a 아카이브.a 를 해보라는 것이었다.file이라는 명령어는 Determine file type of FILEs 이라하고objdump라는 명령어는 Display information from object 라고한다.정확히는 모르겠고, 화일의 정보를 보여주는 명령어들로 이해했는데 ㅎ 여기서.. 더보기
repo 명령어 (command) 설명 Repo : 이것은 repository management tool이며, 이것은 GIT위에서 개발 되었다.Repo는 많은 Git Repository들을 통합했다. 즉, Android project는 여러 개발 프로젝트가 통합된 것이기 때문에 서로 다른 Git Repository가 사용되어져 왔다.그리고 repo를 통해서 우리의 Revision Contro System으로 upload 되어 진다.이것은 필요에 따라 Git repositroies들을 통합한다. 개발 작업 흐름과 같은것들을 자동으로 관리할 수 있다.Repo는 Git를 대신하는것이 아니다. 그것은 단지 GIT를 이용해서 Android 프로젝트를 좀 더 쉽게 관리하기 위해서 만들어진 것이다.repo 명령어들은 Pythonscript들을 실행하는 .. 더보기
Vim Vi 헥사 뷰어, 헥사 에디터 모드 명령어; Hex Viewer Hex Editor, xxd Vim / Vi 에디터에서 현재 편집 중인 파일을 헥사 모드로 즉 16진 모드로 볼 수 있는 명령어가 있습니다. xxd 라는 명령입니다. 이것으로 텍스트파일은 물론이고, "이진파일" 즉 "바이너리" 파일도 헥사 모드로 볼 수 있습니다. 편집도 어느 정도 가능하긴 하지만 불완전합니다. (1) 현재 파일을 헥사 모드로 전환 명령: :%!xxd (2) 헥사 모드를 원래의 모드로 되돌리기 명령: :%!xxd -r * 파일을 불러온 후 (1)번 명령을 실행하여 헥사 모드로 전환한 후, 헥사뷰어로서 보거나 또는 헥사에디터로서 편집하고 * (2)번 명령으로 원래대로 돌린 후, 수정 사항이 있을 경우 :w 명령으로 파일을 하드에 저장하면 됩니다. 아래 화면은 텍스트 파일을 Vim에디터에서 xxd 명령으로 본 것입니다... 더보기
우분투 프린터(Ubuntu Printer) 설치 https://help.ubuntu.com/community/NetworkPrintingWithUbuntu 더보기
Ubuntu Install (2개의 물리적 하드) http://bagjunggyu.blogspot.kr/2015/10/windows-10-ubuntu-1510.html http://zapary.blogspot.kr/2014/10/ubuntu-1410-clean-install.html http://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=odroidx&kind=52&bid=1329 http://bagjunggyu.blogspot.kr/2015/10/windows-10-ubuntu-1510.html 더보기
RAMDISK 만들기 & 사용법 http://mrzu.tistory.com/13 http://metdol.tistory.com/entry/%EC%9A%B0%EB%B6%84%ED%88%AC%EC%97%90%EC%84%9C-%EB%9E%A8%EB%94%94%EC%8A%A4%ED%81%AC-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0 http://egloos.zum.com/bodanaeun/v/1212517 RAMDISK 개념 설명 https://namu.wiki/w/%EB%9E%A8%20%EB%94%94%EC%8A%A4%ED%81%AC 더보기
우분투 runlevel (런레벨) 변경 방법 http://yagi815.tistory.com/781 더보기
Ubuntu의 apt-get 명령어 정리 apt-get(Advanced Packaging Tool)은 우분투(Ubuntu)를 포함안 데비안(Debian)계열의 리눅스에서 쓰이는 팩키지 관리 명령어 도구입니다. 우분투에는 GUI로 되어 있는시냅틱 꾸러미 관리자도 있기는 하지만 이런 저런 개발관련 패키지를 설치할 때는 커맨드기반인 apt-get이 더 편하기도 합니다. sudo는 superuser권한으로 실행하기 위함입니다. 패키지 인덱스 인덱스 정보를 업데이트 : apt-get은 인덱스를 가지고 있는데 이 인덱스는 /etc/apt/sources.list에 있습니다. 이곳에 저장된 저장소에서 사용할 패키지의 정보를 얻습니다. sudo apt-get update 설치된 패키지 업그래이드 : 설치되어 있는 패키지를 모두 새버전으로 업그래이드 합니다. s.. 더보기
[tomcat] tomcat7, tomcat7-admin 설치 tomcat는 apache tomcat의 줄임말로 오픈소스 웹 서버와 서블릿 컨테이너이다.opengrok은 웹 브라우저 상 소스 검색을 할 수 있어 tomcat으로 서버를 운영하고 소스를 연결하면 클라이언트에서 이 서버를 통해 소스 검색을 할 수 있다.1. tomcat 설치.tomcat7과 tomcat7-admin 두 개의 패키지를 설치한다.설치하는 방법은 apt-get 명령을 사용하는 것과 사이트에서 binary 파일을 받아 압축을 풀고 설치하는 것이 있다.이 글에서는 apt-get를 이용하여 설치한다.$ sudo apt-get install tomcat7 tomcat7-admin 2. tomcat 서버에 로그인 적용.tomcat-users.xml 파일을 수정하여 로그인 기능을 적용한다.$ sudo v.. 더보기
패키지 삭제 방법 위 방법은 모든 우분투에 설치된 모든 java를 일괄적으로 모두 제거하는 방법이다. openjdk-java 시리즈.sudo apt-get remove openjdk* oracle-java 시리즈sudo apt-get remove oracle* 설치된 모든 버전의 자바가 삭제가 된다.그 후에sudo apt-get autoremove --purgesudo apt-get autoclean 더보기
vsftpd: 550 Permission denied. vsftpd: 550 Permission denied. 파일을 올리거나 폴더를 생성하려고 할때 오류가 발생한다면 vsftpd.conf 설정파일에 #write_enable=YES 항목의 주석을 제거하고, vsftpd를 재시작하면 해결된다. 더보기
apache + tomcat 연동하기 아파치를 설치하고 톰캣과 연동하려고 합니다.연동해 보기 전에 아파치와 톰캣을 연동하는 이유는 뭘까?톰캣은 정적인 페이지를 로드하기에 아파치 보다 느린 처리속도를 보인다.톰캣은 설정할 수 있는 내용들이 아파치에 비해 부족하다.톰캣은 아파치보다 부하에 약하다.톰캣만으로는 서블릿/JSP밖에 서비스할 수 없다.톰캣과 아파치를 연동하여 부하분담이 가능하다.(다수의 톰캣 구성으로의 로드밸런싱의 의미가 아닌 톰캣만으로 처리가능한 static page를 apache에서 대신함으로써의 부하 분담)개발할때는 톰캣하나로만 돌려서 상관없을 것 같고 실제 운영할 때는 아파치와 톰캣을 연동하는게 성능이나 퍼포먼스를 향상시켜줍니다.이제 아파치 톰캣을 연동해 보겠습니다. 1. Apache + tomcat 설치하기. root 권한에서.. 더보기
Ubuntu DNS 설정 학생분들 주로 많이 사용하시는 리눅스가 Ubuntu라고 생각합니다. 아마 설치와 사용법이 쉬워서겠죠? 우분투를 사용하신다면 설치 후 가장 먼저 하는 일이 인터넷 설정이라고 생각합니다. 인터넷은 이전 포스팅에서도 확인하실 수 있으시겠지만 /etc/network/interfaces 에서 설정을 하시면 됩니다. DNS 설정은 /etc/resolv.conf를 설정하는 것이라고 나와있습니다. 근데 시스템을 재부팅하면 resolv.conf의 설정이 다 날아갑니다. 이때는 아래와 같은 방법으로 설정하시면 됩니다!! 1. DNS 설정 파일 위치 저는 아래 파일에 작성합니다. DNS 주소를 말이죠. 어떤 분들은 /etc/network/interface 에 작성하시는 분들도 계시던데, 전 재부팅하면 지워지더라구요. 근데 .. 더보기
Ubuntu apt-get 명령어 apt-get(Advanced Packaging Tool)은 데비안(Debian)계열의 리눅스에서 쓰이는 패키지 관리 명령어 도구sudo는 superuser권한으로 실행하기 위해서 사용 sudo apt-get update/etc/apt/sources.list의 저장소를 참조하여 패키지 데이터베이스를 업데이트 한다. 즉, 저장소 안의 업데이트 할 수 있는 소프트웨어의 목록이나, 저장소 자체를 추가 했을 때 해당 저장소의 소프트웨어 목록을 업데이트 한다. 일반적으로 시스템에서 시스템의 모든 패키지를 업데이트하기 전에 수행하는 명령어이기도 하다. sudo apt-get upgrade설치되어 있는 모든 패키지를 조사하여 업데이트가 있는 경우 자동으로 업데이트 sudo apt-get dist-upgrade전체 시.. 더보기
ubuntu static ip 설정후에도 resolv.conf가 초기화 되는문제 출처 : http://realizm.tistory.com/67 eth0를 수동 설정하고 나면 dns서버설정이 없어진다. 웹서핑을 해보면 resolv.conf를 수정해서 dns서버를 입력하라는 이야기들이 많은데 결론만 말하면 삽질이다, 네트워크가 재시작되는 순간 덮어쎠져버려서 설정이 날라가니까... 그렇게 될꺼라는 설명도 사실은 resolv.conf파일에 잘 되어있다. # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN 2012:09:01 22:25:09 웹서핑을 하다보니 resolv.conf파일에.. 더보기
rpm 명령이 안될 경우 alien 명령어로 압출풀기 RPM's are used in RHEL for installing the softwares and packages . The rpm -ivh command is for RHEL based Linux. If you want to install an RPM file in Ubuntu (or any debian based file system) you need to install Alien to convert RPM into debian and then install the package. Alien is a program that converts between the rpm, dpkg, stampede slp, and slackware tgz file formats. If you want to use a .. 더보기
Tomcat7 Installation on Ubuntu 1. http://tomcat.apache.org 에서 Tomcat 최신버전 중 tar.gz 다운로드 2. $ tar xvfz apache-tomcat-7.0.25.tar.gz 3. $ sudo mv apache-tomcat-7.0.25 /usr/local/tomcat7 4. $ sudo gedit /usr/local/tomcat7/bin/catalina.sh #!/bin/sh 아래 2줄 추가 JAVA_HOME="/usr/lib/jvm/jdk1.7.0_02" JRE_HOME="/usr/lib/jvm/jdk1.7.0_02/jre" 5. $ sudo gedit /etc/profile export CATALINA_HOME=/usr/local/tomcat7 export PATH=$PATH:$CATALINA_HO.. 더보기
Ubuntu에 JDK 설치하기 출 처: http://forum.falinux.com/zbxe/index.php?document_srl=574845 Ubuntu에 JDK 설치하기 기본적으로 Java 나 안드로이드를 하려고 한다면 JDK를 설치해야 합니다. 윈도우에서는 설치가 있어서 간편한데, 리눅스에서 JDK를 설치하는 방법이 모르는 경우가 있어서 설명하고자 합니다. JDK 설치는 Ubuntu 12.04 Desktop 32비트 버전에서 진행하였습니다. 1. apt-get 으로 openjdk 설치 기본적으로 Ubuntu에서 지원하는 apt를 가지고 설치를 할 수 있습니다. apt 로 설치할 수 있는 항목은 openjdk입니다. Ubuntu Desktop 버전에서는 우분투 소프트웨어 센터에서 UI 화면을 보면서 설치할 수 있습니다. 터미널.. 더보기
Ubuntu에 telnet 설치하기 sudo apt-get install xinetd sudo apt-get install telnetd 으로 설치를 하고 xinetd에 설정을 추가 한다 vi /etc/xinetd.conf service telnet { disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID } 그 후에 xinetd 를 재시작 하고sudo /etc/init.d/xinetd restart 하면 된다 그리고ftp와 ssh 는 telnet 과 같은 방식으로 해주면 된다 sudo apt-get install proftpd 설정파일 : /etc/proftpd/prof.. 더보기
데비안(debian) 계열 hostname 변경 인텔 갈릴레오 보드에 데비안을 올리니 hostname이 (none)으로 나올 경우 몇가지 작업을 통해서 변경할 수 있다. Steps: 1. sudo gedit /etc/hostname 2. Save the file with the hostname you like to set 3. sudo /etc/init.d/hostname.sh start 출처 : http://ubuntuforums.org/archive/index.php/t-1848900.html 더보기
욕토 프로젝트 관련 자료들 링크 - 영어 - yocto 프로젝트 ADT 매뉴얼 : http://www.yoctoproject.org/docs/current/adt-manual/adt-manual.html yocto 프로젝트 개발 매뉴얼 : http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html qemu 에뮬용 이미지,ROOTFS 다운로드 링크 : http://downloads.yoctoproject.org/releases/yocto/yocto-1.6.1/machines/qemu/qemux86/ 인텔 개발자 존 : https://software.intel.com/en-us/blogs/2014/06/09/introduction-to-the-mashery-api-network.. 더보기