Kong Eunho

소프트웨어 관리

2025년 11월 07일 15시
카테고리 - LECTURE, 서버프로그래밍


서버프로그래밍(황승연) 10주차 강의내용

패키지 설치

apt-cache [옵션] [서브 명령] : APT 캐시에서 패키지와 관련된 정보를 출력
패키지 이름, 버전, 설명, 의존성, 설치 가능 여부 확인 가능
패키지를 설치하지 않고도 미리 확인할 수 있음

옵션/서브 명령 설명
-f 패키지에 대한 전체 정보 출력
-h 관련 도움말 출력
stats 캐시 통계 정보(전체 패키지 이름과 단일 가상 패키지 등) 출력
dump 패키지 관리 시스템이 현재 알고 있는 모든 패키지 정보를 출력
pkgnames 사용 가능한 모든 패키지의 이름 출력
search [키워드] 키워드에 해당하는 패키지 검색
show [패키지 이름] 해당 패키지의 정보 출력
showpkg [패키지 이름] 패키지의 의존성과 역의존성에 대한 정보 출력


입력 예 : apt-cache stats

apt-get [옵션] [서브 명령] : 패키지 설치 및 업데이트 명령

옵션/서브 명령 설명
-d 패키지 다운로드 수행
-f 의존성이 깨진 패키지 수정
-h 관련 도움말 출력
update 패키지 저장소에서 새로운 패키지 정보를 가져옴
upgrade 모든 패키지를 최신 버전으로 업그레이드
install [패키지 이름] 해당 패키지 설치
-y 패키지를 설치할 때 자동으로 y 입력
remove [패키지 이름] 설치된 해당 패키지 제거(설정 파일 잔존)
purge [패키지 이름] 설치된 해당 패키지와 설정 파일을 모두 삭제
autoremove 시스템에 설치된 패키지를 자동으로 정리 및 삭제
download [패키지 이름] [패키지 이름] ... 해당 패키지를 현재 디렉터리에 다운로드
autoclean 오래된 패키지 또는 불완전한 다운로드 패키지 제거
check 의존성이 깨진 패키지 확인
clean /var/cache/apt/archives 디렉터리에 캐시되어 있는 모든 패키지를 제거하여 디스크 공간 확보

입력 예 : sudo apt-get update
update 명령을 수행하면 /etc/apt/sources.list.d/ubuntu.sources에서 새로운 패키지 정보를 가져와서 APT 캐시를 수정
만약 이 파일을 수정하였다면 반드시 이 명령을 수행해야 함

dpkg [옵션] [패키지/파일 이름] : .deb 패키지를 직접 설치, 제거, 조회

옵션/명령 설명
-l 설치된 패키지 목록 전체 출력
-l [패키지 이름] 해당 패키지의 설치상태 정보 출력
-r [패키지 이름] sudo 명령을 사용하여 해당 패키지를 삭제
-P [패키지 이름] sudo 명령을 사용하여 해당 패키지와 설정 정보 모두 삭제
-s [패키지 이름] 해당 패키지의 자세한 정보 출력
-L [패키지 이름] 해당 패키지가 설치된 파일목록 출력
-S [경로명] 경로명이 포함된 패키지 검색
-c [.파일 확장자] 해당 파일 확장자를 가진 파일의 내용 출력
-i [.파일 확장자] sudo 명령으로 해당 파일 확장자를 가진 파일 설치
-x [.파일 확장자] [디렉터리명] 해당 파일 확장자를 가진 파일을 지정한 디렉터리에 풀어놓음



파일 아카이브와 압축

파일 아카이브

tar [기능[옵션]] [아카이브 생성 파일명] [대상 파일명]

구분 옵션 설명
기능 c 새로운 tar 아카이브 생성
r 새로운 파일 추가
t tar 파일에 존재하는 파일 리스트 출력
u 수정된 파일에 대해 업데이트 수행
x tar 파일에 있는 원본 파일을 추출
옵션 C [디렉터리명] 파일들을 특정 디렉터리에 풀어 놓음
f [디바이스명 또는 파일명] 아카이브 파일 또는 테이프 장치를 지정 (디바이스명을 -으로 지정하면 tar 파일 대신 표준입력에서 읽어 들임)
h 심볼릭 링크의 원본 파일 포함
j bzip2로 압축 또는 해제
p 파일 복구 시 원래의 접근 권한을 유지
v 처리하고 있는 파일의 정보 출력
z gzip으로 압축 또는 해제
Z compress를 통해 아카이브를 필터링

입력 예 : tar cvf arch_test.tar arch_test
arch_test 디렉터리를 대상으로 아카이브 파일 arch_test.tar을 생성

입력 예 : tar tvf arch_test.tar
arch_test.tar 파일에 대한 상세한 정보를 출력(ls -l과 유사)

입력 예 : tar xvf arch_test.tar
아카이브 파일 arch_test.tar을 해제

입력 예 : tar uvf arch_test.tar arch_test
arch_test.tar의 내용을 arch_test의 내용으로 업데이트

입력 예 : tar rvf arch_test.tar hosts
arch_test.tar 내에 hosts 파일을 추가

입력 예 : tar cvzf arch_test.tar.gz arch_test
아카이브를 생성하는 동시에 arch_test.tar.gz(gzip 형식으로 압축) 압축 파일로 생성

입력 예 : tar cvjf arch_test.tar.bz2 arch_test
아카이브를 생성하는 동시에 arch_test.tar.bz2(bzip2 형식으로 압축) 압축 파일로 생성

tar xvzf/xvjf : 압축 해제

파일 압축과 해제

gzip [옵션] [파일명] : 파일을 gzip 형식으로 압축

옵션 설명
-d 파일 압축 해제
-l 압축된 파일의 정보 출력
-r 하위 디렉터리로 이동하여 파일 압축
-t 압축 파일 검사
-v 압축 정보를 화면에 출력
-9 최대한 압축

입력 예 : gzip arch_test.tar arch_test
arch_test.tar 파일을 arch_test.tar.gz 파일로 압축
arch_test의 경우 디렉터리이기 때문에 압축이 불가능

zcat [파일명] : 압축 파일 내용 확인
입력 예 : zcat arch_test.tar.gz

gunzip [파일명] : 압축 파일 해제(g+un+zip)
입력 예 : gunzip arch_test.tar.gz

bzip2 : 파일을 bzip2 형식으로 압축
bzip2는 gzip에 비해 압축률은 좋지만 속도가 약간 느림

옵션 설명
-d 파일 압축 해제
-l 압축된 파일의 정보 출력
-t 압축 파일 검사
-v 압축 정보를 화면에 출력
-best 최대한 압축

입력 예 : bzip2 arch_test.tar arch_test
arch_test.tar 파일을 arch_test.tar.bz2 파일로 압축
arch_test의 경우 디렉터리이기 때문에 압축이 불가능

bzcat [파일명] : 압축 파일 내용 확인
입력 예 : bzcat arch_test.tar.bz2

bunzip2 [파일명] : 압축 파일 해제(b+un+zip2)
입력 예 : bunzip2 arch_test.tar.bz2

소프트웨어 컴파일

gcc [옵션] [파일명] : c 소스 파일에 대한 컴파일을 수행
디폴트 실행 파일명 : a.out

입력 예 : gcc ex_01.c
ex_01.c 파일을 컴파일하여 실행 파일 a.out으로 생성
a.out 실행 시 ./a.out과 같이 주소 지정 필요(경로가 설정되지 않았기 때문)

gcc -o [변경할 실행파일명] [C 프로그램 소스 파일명] : 실행파일명 지정

geany IDE

geany IDE를 사용하여 C 프로그래밍 환경 구성

◀ 이전 글 LECTURE, 객체지향프로그래밍II
템플릿과 표준 템플릿 라이브러리(STL)
2025-11-06
목록으로 다음 글 ▶ LECTURE, 인공지능개론
Decision Tree, Random Forest
2025-11-11