본문 바로가기

IT

(228)
git status 개념 dololak.tistory.com/304 [Git] Git 상태 확인하기 - git status 명령어 및 상태 파헤치기! 먼저 봐야할 글 [Git] Git 세 가지 영역 및 상태 Committed, Modified, Staged 설명 Git에서 세 가지 영역 Git 프로젝트 디렉터리에는 .git(이하 Git 디렉터리) 를 포함하여 프로젝트를 구성하는 수많은 파일들 dololak.tistory.com
설치된 package 확인하기
E45: 'readonly' option is set (add ! to override) 해결 방법 1. sudo 명령어를 통해서 관리자(ROOT) 권한으로 전환 2. 문제의 파일을 열어서 수정해보세요. 명령어 공유 $ sudo vi 파일이름 추가정보 위의 방법으로 해결이 안될 경우, 저장하실때 wq 명령어 대신 w! 명령어를 사용해 보세요! [리눅스] E45: 'readonly' option is set (add ! to override) 안녕하세요. 플랫폼공작소입니다. 오늘은 [리눅스] E45: 'readonly' option is set (add ! to override) 에러를 해결하는 방법을 공유하려합니다. vi에디터를 사용하시다가 E45: 'readonly' option is set (ad.. doctorson0309.tistory.com
E: unable to locate package E: unable to locate package libncurses5-dev 우분투 11.04의 경우에는 build-essential 패키지는 기본적으로 설치되어 있었으나 9.10에서 테스트할 때에는 build- essential 패키지 조차도 설치되어 있지 않았으며 apt-get install 명령어로 설치 시도시 다음과 비슷한 에러들이 발생 하였다. E: unable to locate package build-essential E: unable to locate package libncurses5 E: unable to locate package libncurses5-dev E: unable to locate package bin86 문제의 원인 : 우리가 사용하는 우분투의 버전에는 해당 버전마다 ..
라이브러리 .a 파일 .so 파일 정적라이브러리 - 동적(공유)라이브러리에 비해 실행 속도가 빠르고 배포에 제약이 없음 - 다만, 해당 라이브러리를 필요로 하는 모든 경우 같은 정적 라이브러리가 링크되기 때문에 배포 파일들의 사이즈가 커짐 - 그러므로 하드디스크 공간도 더 차지하고 메모리도 더 많이 차지함 - 그러나 유닉스 시스템의 경우 그때그때 필요한 부분만 메모리에 로딩하는 demand paging을 사용하기 때문에 정적인 라이브러리의 메모리 사용률과 공유 라이브러리의 메모리 사용률의 차이가 크지 않음 시스템에서 응급시에 필수로 쓰이는 유틸리티와 실행속도를 극대화해야 하는 몇몇 서버를 제외하고는 대부분 동적 라이브러리를 사용한다. *shared library와 dynamic link library는 다른 개념이다 그러나 대부분의 경우..
동적 라이브러리(shared library)와 Linker/Loader 이해하기 이제는 직접 C 언어를 사용하여 개발을 할 일이 많지 않지만 C 언어로 만들어진 프로그램과 라이브러리는 여전히 서비스 인프라에서 중요한 위치를 차지하고 있습니다. linux 등 운영체제가 C 로 만들어져 있고 편리하게 개발을 할수 있는 생산성 좋은 script(ruby 나 python, PHP 등..) 언어의 엔진들은 대부분 C 로 제작되었고 openssl, database driver 등의 기능은 C 로 작성된 라이브러리를 호출하여 언어의 기능을 확장하고 있습니다. 운영체제에서 프로그램이 어떻게 동작하는지 이해하는 것은 견고한 서비스를 만들고 문제가 생겼을 때 대응을 하는데 도움이 되는 지식이지만 바쁜 시대에서 이런 지식을 체계적으로 학습하기는 쉽지가 않습니다. 그래서 프로그램의 동작 방식을 이해하기 ..
[Basic] DRAM, SRAM 메모리 종류 : 1. 메인(Main) 메모리 : 램(RAM) (D램) 2. 레지스터(Register) : CPU 안에 내장되어 있어서 연산을 위한 저장소 제공 3. 캐쉬(Cache) : S램. CPU와 램사이에서 중간 저장소 역할 4. 하드디스크(Hard Disk)와 이외 장치 : 하드 디스크, I/O 장치 등등 [반도체 8대공정] 메모리 SRAM&DRAM (Feat.엔지닉) 반도체 공부 2일차! 반도체 메모리 소자인 SRAM과 DRAM 에 대해서 공부했다 읽기 쓰기 동작 너무 ... blog.naver.com
git stash git의 요술 책갈피, Stash 기능 소개 git에는 기본적인 커밋 & 푸시 등의 기능 외에도 수많은 기능들이 있습니다. 그중 매우 유용한 요술 책갈피인 Stash에 대한 소개입니다. 사전적 의미 Stash [stӕʃ] 1. (안전한 곳에) 넣어 두다 2. 챙겨 � wit.nts-corp.com
apt-get 명령어/ package 설치, 삭제, 검색 apt-get 명령어 정리 (패키지 설치,제거) https://blog.outsider.ne.kr/346 Ubuntu의 apt-get 명령어 정리 apt-get(Advanced Packaging Tool)은 우분투(Ubuntu)를 포함안 데비안(Debian)계열의 리눅스에서 쓰이는 팩키지 관리 명령어 도구입니다. 우분투에.. luckeex.tistory.com
git merge 후 pull 실패 시 해결 방안 - Pull is not possible because you have unmerged files
git merge 후 pull 실패 시 해결 방안 - You have not concluded your merge (MERGE_HEAD exists) 원격지 저장소에 내용과 저의 코드가 겹치는 부분 없이 깔끔하게 병합(merge)이 될 수도 있고, 같은 부분을 고쳤다던지 한다면, 충돌(conflict)이 발생할 수 있다.
vi 편집기 라인 이동
cmake option cmake 예약 변수 cmake에는 자동으로 지정된 변수들이 많은데 이들을 잘 알아야 원하는 빌드 설정을 하고 CMakeLists.txt도 쉽게 작성할 수 있다. 대부분 CMAKE_로 시작하며 CMakeCache.txt를 보면 어떤 변수들이 있는지 볼 수 있다. 그 중 중요한 몇 개만 여기에 설명하는데 아래 내용을 보다가 이 변수들이 나오면 의미를 찾아보자. CMAKE_CURRENT_SOURCE_DIR: 소스 파일들을 찾을 디렉토리 경로로 CMakeLists.txt가 있는 경로가 기본 값으로 들어있다. 다른 경로를 설정할 때 이 변수를 기준으로 상대 경로를 만들면 편하다. CMAKE_INSTALL_PREFIX: make install 할때 빌드 결과물이 복사될 경로로 /usr/local이 기본 값이다. ..
make install INSTALL() 설치 경로 설정 보통 라이브러리를 설치할 때 github에서 라이브러리 소스를 다운로드 받아 make를 하여 라이브러리 파일이 만들어 진 후 make install을 실행하여 라이브러리를 시스템에 설치한다. 설치란 별게 아니고 라이브러리를 다른 곳에서도 쓸 수 있도록 소스 파일(*.cpp)을 제외한 바이너리와 헤더 파일들을 다른 곳으로 복사하는 것을 말한다. 설치할 경로는 위에서 CMAKE_INSTALL_PREFIX 변수로 지정했다. 이 변수를 지정하지 않으면 기본적으로 /usr/local에 설치된다. INSTALL()은 복사할 파일의 종류에 따라 설치 경로에 대한 상대 경로를 지정한다.
CMake Build System / gcc, make, cmake 차이점 리눅스에서는 보통 편집기와 컴파일러가 분리되어있다. 리눅스에서의 통합개발환경이란 VS처럼 자체적인 컴파일러까지 포함하는게 아니고 리눅스에 기본 설치된 컴파일러인 gcc를 잘 가져다 쓰는 코드 편집기를 말한다. IDE 마다 각자의 방식으로 소스코드 목록과 의존성을 관리하는 프로젝트 파일을 만드는데 소프트웨어를 배포할 때 특정 IDE의 프로젝트 파일을 배포하게 되면 그 소프트웨어를 받아서 쓰는 사람도 특정 IDE를 설치해야 하는 번거로움이 있다. 그래서 리눅스에서 공통적으로 사용하는 빌드 시스템이 있는데 바로 make와 cmake다. 그래서 소프트웨어을 개발할 때는 편리한 IDE를 쓰고 배포하거나 남의 소프트웨어를 가져다 쓸 때는 command line에서 리눅스 빌드툴을 써서 직접 빌드를 한다. gcc, ..
cmake 과정 설치가 되었으면 CMakeLists.txt파일을 만듭니다. (참고로 파일명을 주의해야합니다. 특히 대소문자 구분해서 CMakeLists.txt파일입니다.) 위의 소스의 리스트를 빌드하겠습니다.([C++] Make와 Makefile 작성법에서 사용하던 소스들...) Makefile로 작성할 때는 여러 의존성 관계까지 작성을 했는데 cmake의 빌드 파일인 CMakeLists.txt은 엄청 심플하네요. 이걸로 Makefile 파일을 작성하겠습니다. cmake를 실행하면 3개의 파일과 1개의 디렉토리가 생긴 것을 확인할 수 있습니다. 그럼 저 Makefile를 make하기 전에 Makefile의 내용을 살펴보겠습니다. 무언가 엄청난 빌드 파일입니다... 자세히 분석해 보면 이해를 하겠는데... 굳이 이해할 필..
vi 편집기 검색, 하이라이트 설정
vi 편집기 라인 복사 (명령모드에서) 한 줄 복사: yy 한 줄 삭제: dd 붙여넣기 : -p N줄 복사나 삭제는 nyy ndd ex) 3줄 복사 -> 3yy [리눅스 Linux] vi 편집기 블락 범위 복사, 주석 블럭 처리, 범위 삭제, 비주얼 블럭 모드, 복붙 norm [ 리눅스 Linux, 유닉스 Unix 포스팅 링크 모음 ] 안녕하세요~!! 저번 시간 vi 편집기의 아주 기초 사용법에 이어서 오늘 vi편집기에서 자주 사용하게 될 블락 복사 기능에 대해서 간단하고 빠르게~ 다 jhnyang.tistory.com
vi 편집기 라인 출력 [리눅스 유닉스] vi편집기 라인 출력하기, 행번호 출력, 검색 결과 하이라이터 색깔칠하기 (hlsearch 안녕하세요!! 아주아주 간단하게 다뤄볼 정말 초스피드로 끝날 거 같은 정보성 포스팅입니다. vi 편집기에서 행번호, 라인번호 출력하기 라인번호 출력해주는 명령어예요. 라인번호출력 :set num jhnyang.tistory.com
[putty] colour 변경 # putty 배경을 흰색으로 설정 방법 # # putty 배경을 흰색으로 설정 방법 # windows -> colours -> Use system colours www.pigletstory.co.kr PuTTY 설치와 폰트, 배경, 기본 설정하기 PuTTY는 리눅스의 터미널 창으로 접근할 수 있게 해주는 도구다. 설치 작업이 필요 없는 실행 파일이라 어디서든 부담없이 사용할 수 있다. 다운 받는 사이트 https://www.chiark.greenend.org.uk/~sgtatham/pu pimi.tistory.com
update-alternatives 명령어 alternatives (cf, update-alternatives)는 심볼릭 링크를 생성, 제거, 관리, 조회할 수 있는 기능을 제공하는 GNU 라이센스의 커맨드라인 툴. 즉, 심볼릭 링크를 통해서 특정 커맨드에 대해 디폴트 버전 혹은 경로를 정의할 수 있다. 다만, Debian 계열의 리눅스에는 update-alternatives 명령어만 제공 (perl 언어에 대한 의존성을 제거하기 위해 기존의 alternatives 스크립트가 재구현이 되었다고 함)되고, Redhat 계열의 리눅스 명령과 제공하는 기능에는 다소 차이가 있지만, 이번에는 공통적인 기능과 옵션에 대해서만 정리하기로 하였다. 추가로, 예제들은 Redhat 기준으로 정리하였다. 심볼릭 링크 생성하기 (–install) --install ..
PATH 설정 $PATH 설정 영구 등록 앞서 알아본 환경 변수 등록 방법은 어디까지나 임시로만 적용되는 것이며 해당 터미널이나 쉘 등이 종료되면 해당 내용은 초기화됩니다. 해당 환경 변수 내용을 영구적으로 등록하여 언제나 사용하고 싶다면 사용자자별 환경 설정 파일이나 시스템 환경설정 파일에 추가해주어야 합니다. export PATH=/추가할 경로1:/추가할 경로2:/경로3:$PATH gedit 같은 문서 편집 프로그램을 열어 환경 설정 파일 말미에 위 구문을 작성하고 저장해주시면됩니다. 그러나 이것은 터미널 작업에 익숙지 않은 분들에게 권장드리는 방법이고 터미널 작업에 익숙한 터미널에서 바로 내용을 추가하고 적용할 수 있습니다. 환경 설정 파일 백업 study@study-VirtualBox:~$ cp ~/.bashr..
apt-get Linux에서는 설치 가능한 소프트웨어가 온라인상의 저장소(Repository)에 저장되어 있고, 필요할 때마다 패키지를 다운로드 받아 사용하는 방식으로 새로운 소프트웨어를 설치합니다. 여기에 사용되는 명령어가 바로 apt-get 입니다. 새로운 소프트웨어의 설치는 관리자 권한이 필요하기 때문에 이 명령어를 사용할 때는 주로 앞에 sudo를 붙여서 sudo apt-get으로 사용합니다. 저장소(Repository)는 한곳에만 저장되어 있는것이 아니라 전 세계 곳곳에 같은 자료를 복사해서 운영하는 미러(Mirror) 서버가 존재합니다. 만약 하나의 저장소만 운영한다면 물리적 거리상의 문제로 다운로드 속도가 매우 느리고, 서버가 부하를 견뎌내기 어려울 것입니다. 이 저장소의 위치는 Ubuntu를 설치할 당시..
[Linux] cpu 정보 확인 0. CPU 정보 확인 > cat /proc/cpuinfo 1. CPU 코어 전체 개수 확인 > grep -c processor /proc/cpuinfo 2. 물리 CPU 수 확인 > grep "physical id" /proc/cpuinfo | sort -u | wc -l 3. CPU당 물리 코어 수 확인 > grep "cpu cores" /proc/cpuinfo | tail -1 [리눅스] 리눅스에서 CPU 정보 확인하기 리눅스에서 CPU 정보 및 CPU 코어개수, 물리 CPU 수를 쉽게 확인하는 방법이다. 결론적으로 /proc/cpuinfo 에 모든 정보가 나와있지만, 개수를 확인하고 싶은데 일일이 찾아보기 귀찮을 땐 1~3번 참고. 0. nota.tistory.com [Linux] uname 명령..
git 일반적 명령어 정리 github.com/jeonghwan-kim/git-usage
[Linux] directory 구성 / 리눅스 소스레벨 구조 외부 업체에서 제공하는 프로그램을 설치할 경우, /opt에, 컴파일 해서 설치하는 경우나 사용자가 압축을 풀어 설치하는 경우는 /usr/local을 기본 디렉토리로 설치되며, 패키지로 설치하는 경우, /usr을 기본 디렉토리로 설치됩니다. 그리고, 디렉토리 구성은 /usr[/local]/bin : 실행파일 /usr[/local]/share: 공유파일로 그림이나 문서, 아이콘등 /usr/[local]/lib: 각종 라이브러리 /etc: 각종 설정파일 /var: 각종 상태나, 캐시등 $HOME/.패키지명: 사용자별 설정 및 저장된 파일 및 작업디렉토리 kernel 디렉터리 : 태스크 관리자가 구현된 디렉터리이다. - 테스크의 생성과 소멸, 프로그램의 실행, 스케줄링, 시그널 처리등의 기능 구현. arch 디..
apt-get install 로 설치된 위치찾기 Windows 에서는 대부분 Program files 디렉토리에 설치가 되는 편인데 Ubuntu 는 좀 이곳저곳에 설치되는 느낌이 강합니다. 어떤 방법으로 설치하느냐에 따라서도 좀 달라지고 게다가 어떤 계정으로 설치하느냐에 따라 달라지는 것 같기도 하고요. 패키지가 설치 된 디렉토리 찾는법을 알아보겠습니다. apt-get install 로 설치된 경우 dpkg -L apt-get install 로 설치한 패키지는 검색이 됩니다. dpkg -L openjdk-8-jre gem 으로 설치된 경우 gem environment gem environment | grep ruby
pip & pip3 설치(install) 방법 pip이란 python으로 작성된 패키지의 설치 및 관리를 해주는 프로그램이다. pip을 이용하면 의존성 문제를 자동적으로 해결해주기 때문에 편리하다. 만약 pip이 설치되어 있다면 pip list 명령을 통해 현재 설치되어 있는 패키지들의 리스트를 확인할 수 있다. pip은 Python 2.x용, pip3는 Python 3.x용 프로그램이다. apt-get install python-pip apt-get install python3-pip 우분투(Ubuntu)에서 pip & pip3 설치(install) 방법 – Wanho Choi pip이란 python으로 작성된 패키지의 설치 및 관리를 해주는 프로그램이다. pip을 이용하면 의존성 문제를 자동적으로 해결해주기 때문에 편리하다. 만약 pip이 설치되..
Library 경로 설정 우분투에서 개발하면서 가장 적응이 안되었던것이 Library 가져다 쓰는것이었다.(*.so, *.a) 매번 검색하는게 귀찮아서 블로그에 기록해둔다. 보통 아래와 같이 3가지 방법이 주요하다. 1. Home 디렉토리의 .profile 또는 /etc/.profile 에 라이브러리를 추가 * .profile은 숨김파일로 ls -al 옵션을 함께 줘야 보여진다. 2. 쉘에서 Path 지정. - LD_LIBRARY_PATH=/home/user/lib:$LD_LIBRARY_PATH - export LD_LIBRARY_PATH 3. /etc/enviroment에 입력하거나, bash가 시작될때 불러올 수 있도록 home 디렉토리의 .bashrc에 입력 끝으로 우분투에서 필요한 공유 라이브러리들은 ldconfig를 사..
동적 링크 라이브러리, ldconfig 2. 다운받은 폴더로 이동해 압축을 풀고 폴더로 들어간다. tar -xf protobuf-2.6.0.tar.gz cd protobuf-2.6.0 3. 아래 명령을 통해 빌드한다. sudo ./configure sudo make sudo make check sudo make install 4. 설치가 되었는지 확인한다. protoc --version 5. 만약 위에서 오류가 발생하면 아래와 같이 해본다. sudo ldconfig ldconfig란? ldconfig 는 동적 링크 라이브러리(.so)로 소스컴파일 한 실행 파일을 ldd[파일이름] 해보면 링크가 안되어 있을 시 경로를 못찾는 것들이 나오는데 이를 해결할 떄 사용한다. 이때 동적링크를 /etc/ld.so.conf 에 해당 라이브러리 경로를 삽입 ..