: 리눅스에 사용되는 프로그램은 공개 소프트웨어라는 특징과 유닉스으 영향으로 C언어로 된 소스 (Source)파일을 압축하여 배포된다.
- C언어로 작성된 프로그램으 소스코드를 계층적인 디렉터리 구조이고, 컴파일을 위한 MakeFile과 같은 관련 문서를 포함한다.
소스파일 -> 압축 해제 및 파일 풀기 -> 사용자 설정(Configure) -> 컴파일 디버깅(make) -> 설치 (make install)
- 패키지의 소스 파일을 받아서 직접 설정 및 컴파일 하는 방식
- Makefile이라는 파일을 읽음으로써 소스 코드에서 실행 가능한 프로그램과 라이브러리를 자동으로 빌드하는 자동화 도구
- apt로 설치될 때 적용되지 않는 특별한 옵션, 사용자 설정, 소스코드의 수정등이 필요할 경우 사용
- 일반 사용자보다 프로그래머 혹은 고급 시스템 사용자에게 적합하다.
- cmake
사용자 설정(Configure) + 컴파일 디버깅(make)작업을 통합하는 프로그램으로, 운영체제에 맞는 make파일의 생성을 목적으로 함.
- 레드헷계열 :
rpmyum: 온라인으로 알아서 설치해준다.- 데비안계열 :
dpkgapt-get(ubuntu에서 사용)- 수세(SUSE)계열 :
YaSTzypper: 압축 파일을 실제로 받아서 설치하는 것
: windows 의 setup.exe와 같이 바로 실행 할 수 있는 설치 파일.
*.deb확장자를가지며 패키지(Package)라 부름- 단점: 의존성
ex) 우분투의 Firefox는 X 윈도우에 의존적이므로 X 윈도우가 설치 되어있지 않으면 설치가 불가능.
:
dpkg가 가지는 의존성 문제를 해결해주며 특정 패키지를 설치하고자 할 때, 의존성이 있는 다른 패키지를 자동으로 먼저 설치해줌.
- 우분투가 제공하는 deb 파일 저장소에서 deb파일 뿐만 아니라, 의존성이 있는 다른 deb파일까지 인터넷을 통해 알아서 다운로드
후 자동 설치해줌- 단점: 인터넷에 연결되어있어야함
- deb 파일이름 형식
패키지명_버전-개정번호_아키텍처.deb
- 설치
#dpkg –i [패키지파일명.deb] (--install)
- 삭제
#dpkg –r [패키지명] (-remove) #dpkg –P [패키지명] (--purge) (기존에 설치된 패키지 및 설정파일 전부 삭제)
- 패키지 조회
#dpkg -S [패키지명] (해당 패키지명으로 시스템에 설치된 파일 이름을 찾음) #dpkg - l [패키지명] (해당 패키지명과 일치하는 패키지 리스트 정보) #dpkg –L [패키지명] (해당 패키지명으로 설치된 파일 목록 정보)
- deb 파일 내용 조회
#dpkg --info [패키지명.deb]
설치를 해보자!
- 보통 src에서 다운을 받기 때문에 경로를 변경해주자.
- firefox 설정에서 다운로드 위치를
usr/local로 변경해준다.
firefox에서 계산기를 다운로드 받아보자.
- 해당 명령어로
sources.list에 들어가서 링크를 통해 인터넷 접속을 하자.
universe->g->galculator에서galculator_2.1.4-1build1_amd64.deb설치
universe: 우분투에서 공식적으로 지원하지 않는 무료 소프트웨어이다.
dpkg -i gal(+tab)명령어로 설치 진행하면 된다.
- 어플리케이션이 설치된 것을 확인할 수 있다.
- 설치
#apt –y install [패키지명] (-y는 yes로, 사용자에게 설치 시 yes/no를 묻는 과정을 생략함-모두 yes)
- 패키지 목록 업데이트
#apt update (/etc/apt/sources.list 파일의 내용이 수정되었을 경우) #apt upgrade (받은 패키지의 업그레이드를 해야할 때. apt update 우선 적용 후 사용)
- 삭제
#apt remove [패키지명] #apt purge [패키지명] (환경설정까지 전부 삭제) #apt autoremove (사용하지 않는 패키지 모두 제거)
- 내려받은 파일 제거
#apt clean (패키지를 설치할 때 내려받기 한 파일 제거)
- #apt-cache: 패키지를 설치하기 전에 패키지에 대한 정보나 의존성 문제를 미리 확인해볼 수 있는 명령어
패키지 정보 보기: apt-cache show 패키지명
패키지 의존성 확인: apt-cache depends 패키지명
패키지 역의존성 확인: apt-cache rdepends 패키지명- main: 우분투에서 공식적으로 지원하는 무료 소프트웨어
- universe: 우분투에서 공식적으로 지원하지 않는 무료 소프트웨어
- restricted: 우분투에서 공식적으로 지원하는 유료 소프트웨어
- multiverse: 우분투에서 공식적으로 지원하지 않는 유료 소프트웨어
① apt install 입력 ② /etc/apt/sources.list 파일에서 URL 주소 확인 ③ 설치와 관련된 패키지 목록 요청 ④ 전체 패키지 목록 파일만 다운로드 ⑤ 설치할 패키지와 관련된 패키지의 이름을 화면에 출력 ⑥ y를 입력하면 설치에 필요한 패키지 파일 요청 ⑦ 설치할 패키지 파일을 다운로드해서 자동 설치
- 커널에 포함될 것과 모듈로 나누는 작업으로, 최근 하드웨어와의 호환 혹은 효율적 사용을 위해 최신버전으로 업데이트 하는 것
- 모듈: 별도로 보관했다가 필요할 때마다 호출하여 사용되는 코드들
/boot/vmliuz-커널버전파일명: 부팅 시 메모리에 로딩되며 부팅 시 꼭 필요한 부분만 포함/lib/modules/커널버전/: 부팅 시에는 꼭 필요하지 않거나, 언제 사용할지 모르는 유동적인 정보들- 주로 하드웨어 지원 문제를 해결하기 위함
make,gcc,g++등 의존 패키지 필수
make: 커널 이미지와 모듈들이 컴파일되며, 환경에 따라 몇십분~몇시간 소요( -jcpu개수-1 로 설정하여 스레딩 작업 가능)make modules_install: 새로 컴파일된 모듈들이/lib/modules/커널버전/kernel디렉터리로 설치됨
새 커널로 부팅 후 의존성 오류가 날 때의 조치:#depmod -amake install: 컴파일된 커널 이미지를/boot디렉터리로 옮기며 부팅 이미지 생성makefile: 어느 파일들을 어떤 방법으로 컴파일링하여 최종적으로 어떤 실행파일을 만들 것인지를 알려주는 설정 파일
1. 커널 아카이브에서 커널 다운
2. 커널 압축 풀고 폴더로 이동
3. 필요한 패키지 설치 `qt5-default`, `libssl-dev`, `gcc`, `g++`, `make`, `flex`, `bison`, `libelf-dev`
4. 커널 설정을 초기화한다. `# make mrproper`
5. 커널 환경 설정(configure과정)`#make xconfig`
6. 원하는 옵션 선택하고 저장하고 종료
6.5. 컴파일 과정에서 나올 수 있는 오류 제거 `nano ./.config`
7. 컴파일 `#make`
8. 컴파일 된 모듈을 `/lib/modules`에 설치 `#make modules_install`
9. 설치 `make install`
10. 컴파일 과정에서 나온 파일들 정리. `#make clean`
11. 설치가 완료되었습니다.
12. reboot해서 GRUB환경으로 들어가서 커널 확인 및 선택
13. 시작 후 `#uname-r` 명령어로 커널 적용 확인
1. 커널 아카이브에서 커널 다운
www.kernel.org(최신 커널 파일)에서 다운을 받자.
mainline의tarball설치mainline : 주버전 stable : 안정화된 버전
시스템 커널 버전 확인 방법
cat /proc/version
버전명 :#uname -r
모든 정보 :#uname -a
커널명 :#uname -s
CPU 종류 :#uname -p
- 내 우분투의 커널 버전 확인법 2가지
2. 커널 압축 풀고 폴더로 이동
-> usr/local 로 가서 커널 압축을 풀자.
linux-5.19rc5들어가보니 Makefile이 있다.
3. 필요한 패키지 설치 qt5-default, libssl-dev, gcc, g++, make, flex, bison, libelf-dev
커널 컴파일 하기 위해서 설치해야 하는 것.
4. 커널 설정을 초기화한다. # make mrproper
- 커널 설정 초기화 : 조금 기다려보고 아무 메세지도 안나오면 정상 동작한 것이다.
5. 커널 환경 설정(configure과정)#make xconfig
6. 원하는 옵션 선택하고 저장하고 종료
File system->DOS/...-> 맨 밑쯤 NTFS file 관련된 거 전부 체크NTFS: window 파일시스템- 리눅스와 윈도우는 파일 시스템이 다른데 이 두개를 체크하면 윈도우의 NTFS 파일 시스템을 호환가능하도록 한다.
6.5. 컴파일 과정에서 나올 수 있는 오류 제거
- 얘네들을 쌍따옴표 안에있는 것들을 다 지워야한다. 수정 후 저장한다.
- CONFIG SYSTEM TRUSTED KEYS=""
- 커널을 그냥 받으면 기본 설정이 되어있어서 수정해야 오류 안남.
명령어 동시 실행 하는법
- 세미콜론을 넣어주면 된다.
8. 컴파일 된 모듈을 /lib/modules에 설치
9. 설치 make install
make이거는 진짜 오래걸린다. 너무 오래걸리게 때문에 하는 방법만 알자. 취소는 ctrl + c
10. 컴파일 과정에서 나온 파일들 정리.
- config할 때 생긴 필요없는 파일을 지워준다.