카테고리 없음

20일차

pulttaegi 2026. 5. 27. 09:51
반응형

[ 사전 설정 ]

 

스냅샷 돌리고
192.168.10.100   putty  

1G  /dev/sdb

fdisk /dev/sdb
P  P L L P
100 100 250 250 etc


포멧  ( mkfs : make file system )

mkfs -t [파일시스템명]  [디바이스명]

blkid = 포멧이 완료된 파티션 확인

mkfs -t ext4   /dev/sdb5
mkfs -t xfs    /dev/sdb6
mkfs -t ext3    /dev/sdb5
mkfs -j  /dev/sdb6  ( -j 는 journal ) (ext3)
mkfs /dev/sdb5 (ext2)
mke2fs  /dev/sdb6 (ext2)

mke2fs   => mkfs
=================================================
mkfs -t ext4 /dev/sdb3 (extended는 포멧X)
mkfs.ext4 /dev/sdb5 (-t ext4 대신 .ext4로 쓸수있음)
mkfs.xfs /dev/sdb5

mkfs  는 ext2
mkfs -j 는 ext3
** xfs 포멧은 덮어쓸때 -f 를 사용해야함 ***
ex) mkfs.xfs -f /dev/sdb6
==================================================
리눅스 파일시스템 종류 (파일시스템 확장시 속도 up, 안정성 up )
ufs 유닉스파일시스템
ext2 속도 UP
ext3 속도 UP, 저널링 (안정성UP)   -j
ext4 속도,저널링 기능 대폭 향상
xfs 2TB이하에서는 비효율 (대용량 파일시스템, centos7의 기본값)



mount (장치연결)
* 포멧이 완료된 파티션및 장치를 사용자가 읽고 쓸수있도록
  디렉토리에 연결하는것

*** mount 필수조건 ***

장치  fdisk
포멧  mkfs
m.p(dir) mkdir

[ mount 확인명령 ] 
mount = cat /etc/mtab = cat /proc/mounts
df -h (df -Th) ************

-- 마운트 내용을 df로 더 간편하게 확인 가능함
df : diskfree  디스크여유공간확인  (디스크장치확인) -- 본래 용도
du: diskusage    디스크사용량   ( du -s /home )

--  free 여유공간



mkdir  /mp 
cd /mp
touch mp1 mp2 mp3 

cd / 


mount -t ext4  /dev/sdb1  /mp  ( 포멧이 되지 않아 마운트 X)
mkfs.ext4 /dev/sdb1

mount -t ext4  /dev/sdb1  /mp  ( 마운트완료)
df -h (df -Th)



[마운트 확인 = 하드여유공간확인]
df -h   [마운트내용 확인]  ***
df -Th [+파일시스템 확인]

**하드 용량을 알아보는 명령어 ******
du  (disk use) 디스크사용량 [디렉토리]
-s  총용량
-b  byte표현

df (disk free) 디스크여유공간 [전체]  ****
-h   사람이 보기 좋은...휴먼
-T   파일시스템

free 가상메모리공간 [전체]

[ 마운트가 완료된 상태 ]
cd /mp
mkdir sevas1 sevas2 sevas3
cd /


***** 마운트 해제명령 *********

1. umount /dev/sdxn (장치명)   x는 a b c d  
 n 은 1 2 3 4
2. umount /mp (마운트 포인트)

umount /dev/sdb1
ls -l /mp


mount /dev/sdb1  /mp (알아서 파일시스템 인식함)


cd /mp
umount /dev/sdb1 ( 해제 안됨)  -- 현재 mp에 
fuser /mp    ( 디렉토리내 프로세스 확인 )
cd /
fuser /mp  
umount /mp
df -h

현재 돌고있는 유저가 없는지 확인하고 mount를 풀어야 한다.


==================!!! 다른실습 !!!================
cd /mp 
 mount /dev/sdb1 /mp


ls -l
ls -l /mp  *** 서로 다르게 나온다****


cd /
cd /mp
ls -l
ls -l /mp 


*** 마운트 장착/해제시 반드시 m.p 밖에서 작업***
(mount point)

mkdir /mp2

touch /mp2/2222

mount /dev/sdb1 /mp2

ll

ll /mp2


[자동 마운트]
cat /etc/fstab

(시작 전 백업)

mkdir /backup
cp -a /etc/fstab /backup/
ll /backup/

 


UUID=0524779c-7301-4f80-9183-103019a33c70  /boot ext4     defaults        1  2
[디바이스]    [m.p] [filesystem] [mount옵션] [dump기록] [fsck검사여부]

dump :  0  기록X
1  기록O

fsck검사:  0 검사X
  1 우선체크 (/전용)
  2 차순체크 (보통사용)
** 디바이스 **
/dev/sdxn 으로 주거나 UUID 를 입력

포멧 진행 및 확인


** UUID를 쓰는이유 **
부팅순서가 바뀌거나 하드디스크를 추가할때 우선순위에 따라
sdb sdc 가 바뀔수 가 있습니다 이때 error가 나서 부팅이 안됨
가급적 UUID 를 사용해서 fstab 구성할것 

ex)
UUID="4eab30b4-afda-4465-9645-55cb80a62ee8"     /m2             ext4    defaults        1 2   (UUID 방식)
/dev/sdb5                                       /m1             ext4    defaults        1 2 (디바이스방식)

 

마운트 되는지 확인하고 init6로 재부팅

설정후에 반드시 mount -a로 확인할것 

*** 정리 *** 
자동마운트를 할때는 /etc/fstab을 사용 
단 설정후 반드시 mount -a 를 통해 확인

*** / 디스크가 읽기 전용  ***

mount -o remount,rw  /   ( centos7 버전이후부터는 안씀 )

 


 

[ 중간 점검 문제 ]

 

[ 중간점검문제 설정 순서 ]

1. 싱글부트,  IP 설정

2. 마운트 작업

3. 계정 작업

4. 권한 작업

 

[ 참고 ] 

IPADDR=192.168.10.10

NETMASK=255.255.255.0

GATEWAY=192.168.10.2

DNS1=168.126.63.1

ONBOOT=yes

 

[ 1. 신규 디스크 스캔 및 저장소 디렉터리 생성 ]

mkdir -p /export/sdb 마운트 포인트 디렉터리 생성
새로 추가할 하드디스크를 연결할 폴더 경로를 시스템에 미리 만들어 둡니다.
fdisk -l  디스크 장치 및 파티션 목록 확인
find /sys -name scan 스캔 파일 경로 검색
시스템 재부팅 없이 새 디스크를 인식시키기 위해 리눅스 커널의 SCSI 스캔 파일 위치를 찾습니다.
echo "- - -" > /sys/devices/pci0000:00/0000:00:10.0/host2/scsi_host/host2/scan SCSI 호스트 버스 재검색
커널에 신호를 보내 새로 연결된 하드디스크를 강제로 인식시킵니다.
fdisk -l  디스크 장치 재확인 스캔 명령 이후 3GiB 용량의 새로운 디스크 장치(/dev/sdb)가 정상 로드되었는지 확인합니다.

[ 2. fdisk를 이용한 sdb 디스크 파티션 분할 ]

fdisk /dev/sdb  파티션 관리 도구 실행
/dev/sdb 디스크의 파티션 구조를 정의하기 위해 대화형 유틸리티를 시작합니다.
p (fdisk 내부 명령)  파티션 테이블 출력
현재 디스크에 아무런 파티션 정보가 없는 깨끗한 상태임을 먼저 출력해 봅니다.
n ➔ p ➔ 1 ➔ +500M  1번 주 파티션 생성
-- 디스크의 시작 지점부터 500MiB 크기를 가지는 첫 번째 주 파티션(/dev/sdb1)을 생성합니다.
n ➔ p ➔ 2 ➔ +500M  2번 주 파티션 생성
-- 이어서 500MiB 크기를 가지는 두 번째 주 파티션(/dev/sdb2)을 생성합니다.
p (fdisk 내부 명령)  중간 생성 결과 확인
-- 500MiB짜리 주 파티션 2개가 정상적으로 잡혔는지 메모리 상태를 확인합니다.
n ➔ p ➔ 3 ➔ +500M   3번 주 파티션 생성
-- 동일한 방식으로 500MiB 크기의 세 번째 주 파티션(/dev/sdb3)을 생성합니다.
n ➔ e ➔ 4 ➔ [Enter]  4번 확장 파티션 생성
-- MBR(DOS) 방식의 제약으로 주 파티션은 4개까지만 만들 수 있으므로, 남은 공간(1.5GiB)을 전부 확장 파티션(/dev/sdb4)으로 통째로 지정합니다.
d ➔ 4  4번 파티션 삭제
-- 확장 파티션 설정 중 옵션을 다시 지정하기 위해 방금 정의한 4번 파티션을 임시로 지웁니다.
n ➔ e ➔ 4 ➔ [Enter]  4번 확장 파티션 재생성
-- 남은 전체 용량을 확실하게 포함하도록 확장 파티션 구조를 다시 올바르게 잡아줍니다.
p (fdisk 내부 명령)  파티션 목록 최종 확인
-- 주 파티션 3개와 이를 감싸는 확장 파티션 1개가 설계대로 배치되었는지 검증합니다.
n ➔ [Enter] ➔ [Enter]  5번 논리 파티션 생성
-- 확장 파티션 내부 공간에 실제 데이터 저장이 가능한 1.5GiB 크기의 첫 번째 논리 파티션(/dev/sdb5)을 최종 할당합니다.
p (fdisk 내부 명령)  최종 파티션 배치 확인
-- /dev/sdb1부터 /dev/sdb5까지의 모든 구획 정리가 완료되었는지 최종 검토합니다.
w (fdisk 내부 명령)  변경 사항 저장 및 종료
-- 지금까지 메모리에서 작업한 파티션 테이블 정보를 디스크 유효 영역에 완전히 기록하고 적용합니다.

 


[ 3. 파일시스템 포맷 및 영구 마운트 설정 ]

mount /dev/sdb5 /export/sdb/  포맷 전 마운트 시도 (실패)
-- 아직 파일시스템이 만들어지지 않은 상태라 연결할 수 없다는 에러 메시지를 확인합니다.
mkfs.ext4 /dev/sdb5  ext4 파일시스템 생성 (포맷)
-- 1.5GiB 크기의 논리 파티션을 리눅스 표준 파일시스템 형태인 ext4 포맷으로 채워 넣습니다.
blkid  블록 장치 고유 식별자(UUID) 확인
-- 자동 마운트 설정 파일에 등록하기 위해 포맷 완료된 /dev/sdb5 파티션의 고유 고정 값(UUID)을 확인합니다.
vi /etc/fstab  리눅스 영구 마운트 설정 파일 수정
-- 시스템이 부팅될 때 부팅 스크립트가 해당 UUID를 읽어와 /export/sdb 경로에 알아서 연결하도록 설정 텍스트를 추가합니다.
mount -a  설정 파일 즉시 반영 시도 (경고 출력)
-- fstab이 변경되었으니 systemd 관리자 구성을 갱신하라는 시스템 힌트 메시지를 확인합니다.
mount -a  마운트 재수행 및 적용
-- 수정된 내역을 시스템에 완전하게 마운트 연동시킵니다.
df -h  디스크 연결 및 용량 상태 확인
-- 용량 단위(GB, MB)로 변환된 목록을 보며 /dev/sdb5가 목적지 폴더에 정상 연결되었는지 검증합니다.
init 6  시스템 재부팅
-- 실제 운영체제가 리부팅된 환경에서도 디스크 자동 마운트 기능이 꼼꼼하게 잘 작동하는지 테스트하기 위해 컴퓨터를 끕니다.
df -h  부팅 후 마운트 재확인
-- 다시 root 계정으로 로그인한 직후 디스크가 누락 없이 깔끔하게 자동 연결되어 있는지 체크합니다.

[ 4. 기존 사용자 홈 디렉터리 이전 저장 ]

mkdir -p /export/sdb/home  신규 사용자 홈 디렉터리 루트 생성
-- 새 하드디스크 내부에 유저들의 계정 폴더가 모여 살 공간을 별도로 마련합니다.
usermod -md /export/sdb/home/sevas sevas  sevas 유저 홈 디렉터리 강제 이전
-- 기존 일반 유저인 sevas 계정의 홈 경로를 새 디스크 영역으로 바꾸는 동시에, 기존에 쓰던 개인 파일과 폴더들까지 새 공간으로 전부 강제 이동시킵니다.
cd ~sevas  sevas 홈 디렉터리로 이동
-- 단축키(~)를 사용하여 바뀐 유저 공간으로 직접 진입합니다.
pwd  현재 경로 확인
-- 현재 서 있는 위치가 새로 할당한 /export/sdb/home/sevas 가 맞는지 확인합니다.
tail -3 /etc/passwd  계정 관리 정보 확인
-- 시스템 계정 설정 정보를 파악하여 sevas 계정 항목에 명시된 홈 디렉터리 주소가 완벽하게 업데이트되었는지 눈으로 검증합니다.

 


[ 5. 맞춤형 스켈레톤(Skel) 구조 뼈대 빌드 및 압축 테스트 ]

mkdir /skel2  커스텀 뼈대 루트 폴더 생성
-- 신규 유저 생성 시 제공할 고유한 초기 환경 설정 및 파일 배포용 전용 기지를 건설합니다.
cp -a /etc/skel /skel2/ftp_admin  기본 스켈레톤 복사
-- 시스템이 기본 제공하는 숨김 설정 파일과 소유권 속성을 통째로 복사하여 기본 베이스라인 틀을 잡습니다.
ll  skel2 디렉터리 리스트 확인
-- 복사해 온 ftp_admin 뼈대 폴더의 구조와 속성이 정상인지 목록으로 확인합니다.
cp -a ftp_admin/ main  웹 관리자용 스켈레톤 생성
-- 먼저 잡아둔 베이스라인을 활용해 홈페이지 전용 유저 그룹에게 배포할 main 뼈대 폴더를 파생 복사합니다.
ll  뼈대 그룹 생성 검증
-- ftp_admin과 main 두 개의 배포용 프로필 폴더가 나란히 준비되었는지 확인합니다.
cd main  웹 관리자 뼈대 진입
-- main 스켈레톤 폴더 내부로 들어가 설정을 구성할 준비를 합니다.
vi .bashrc  환경 설정 파일 편집
-- 해당 사용자가 로그인할 때 기본 적용될 터미널 쉘 환경 변수나 별칭(alias) 등을 커스텀 수정합니다.
mkdir html  홈페이지 전용 배포 폴더 생성
-- 이 뼈대로 만들어질 유저들이 기본 탑재하게 될 기본 웹 디렉터리 폴더를 생성합니다.
cd html  웹 디렉터리 내부 진입
-- 기본 메인 페이지를 제작하기 위해 폴더 안으로 이동합니다.
cat > index.html  기본 웹 파일 내용 작성 및 종료 (^C)
-- 사용자가 가입되자마자 출력될 기본 홈페이지 파일에 I LOVE SEVAS 문구를 입력하고 강제 저장합니다.
cd ../.. skel2 상위 경로 리턴
-- 작업을 마치고 다시 커스텀 스켈레톤의 최상단 폴더 위치로 빠져나옵니다.
cd ftp_admin/  파일 관리자 뼈대 진입
-- 이번에는 ftp용 관리자 배포용 프로필을 세팅하기 위해 해당 폴더로 진입합니다.
ls -al  전체 숨김 파일 목록 조회
-- 복사되어 있던 환경 변수 숨김 파일들(.bash_profile 등)이 유실 없이 살아있는지 상세 내역을 조회합니다.
mkdir pub  공용 다운로드 배포 폴더 생성
-- FTP 유저가 공용으로 파일을 주고받을 수 있는 기본 pub 폴더 공간을 설계합니다.
cd pub  pub 폴더 진입
-- 기본 탑재할 배포용 테스트 파일을 심기 위해 이동합니다.
touch 1 2  가상 테스트 파일 생성
-- 압축 및 아카이브 기능을 실습해보기 위해 내용이 텅 빈 파일 '1'과 파일 '2'를 생성합니다.
gzip 1  gzip 압축 실행
-- 파일 '1'을 압축률이 높은 1.gz 형태의 단일 압축 본으로 만듭니다.
bzip2 2  bzip2 압축 실행
-- 파일 '2'를 또 다른 압축 포맷인 2.bz2 형태로 압축 가공합니다.
tar zcvf 3.tar.gz *  tar 묶음 및 압축 동시 실행 -- 현재 디렉터리에 있는 파일들을 한데 엮어 하나의 종합 패키지 파일인 3.tar.gz 아카이브로 묶어냅니다.
ll  최종 압축 파일 리스트 검사 -- 원본 파일들이 사라지고 1.gz, 2.bz2, 3.tar.gz 패키지가 알맞게 빌드되었는지 파일 구조를 살핍니다.

[ 6. 커스텀 뼈대 기반 유저 생성 및 접근 제한 조율 ]

useradd -d /export/sdb/home/ftp_admin -mk /skel2/ftp_admin ftp_admin  FTP 총괄 유저 생성 -- 홈 위치는 새 디스크의 하위 주소로 밀어 넣고, 아까 다듬어 둔 전용 배포용 패키지 틀(/skel2/ftp_admin)을 강제 이식하여 계정을 생성합니다.
passwd ftp_admin  계정 암호 부여 -- 생성된 ftp_admin 계정에 로그인 비밀번호를 설정합니다. (단순 패턴 입력 시 국문 패스워드 검증 경고문이 출력되는 구간입니다.)
cd ~ftp_admin  신규 유저 홈 디렉터리 방문 -- 방금 이식 완료된 계정의 홈 공간으로 순간 이동합니다.
tail -3 /etc/passwd  계정 정보 중간 점검 -- 새 디스크 홈 배치가 규칙대로 들어갔는지 계정 레코드를 슬쩍 훑어봅니다.
useradd -d /export/sdb/home/main -mk /skel2/main main  웹 서비스 총괄 유저 생성 -- 위와 같은 논리로, 사전에 가공해 둔 웹페이지 뼈대(I LOVE SEVAS 파일이 들어있는 틀)를 복사해주며 main 계정을 생성합니다.
passwd main  웹 유저 암호 설정 -- main 사용자의 비밀번호를 최종 세팅합니다.
tail -3 /etc/passwd 유저 명부 최종 검수 -- sevas, ftp_admin, main 세 사용자가 새 디스크 홈 영역으로 올바르게 가입되었는지 대조합니다.
useradd ftpuser  일반 서브 유저 생성 -- 특수 배포 뼈대 없이 시스템 기본 설정값으로 일반 손님 계정인 ftpuser를 별도 생성합니다.
passwd ftpuser  서브 유저 암호 부여 -- ftpuser 계정의 패스워드를 등록 완료합니다.
usermod -d ~ftp_admin/pub ftpuser  서브 유저 홈 디렉터리 공유 매핑 -- 손님 계정인 ftpuser가 접속하자마자 총괄 관리자의 다운로드 창고인 ~ftp_admin/pub 폴더로 바로 다이렉트 랜딩하도록 홈 경로를 교체합니다.
tail -3 /etc/group  시스템 그룹 명부 확인 -- 각 사용자 이름으로 매칭되어 자동 생성된 주 그룹 식별 정보를 최종 모니터링합니다.
cd /export/sdb/home/  사용자 홈 디렉터리 상위 경로 이동 -- 각 홈 폴더들의 보안 상태와 권한을 전반적으로 튜닝하기 위해 보관 위치로 나갑니다.
ll  폴더 보안 권한 기본값 스캔 -- 생성 당시 자동 배정된 각 폴더들의 소유권과 허가권 레벨을 정밀 조회합니다.
chmod 756 ftp_admin  권한 변경 테스트 -- 일반 타인 권한에 읽기/쓰기를 과도하게 열어주는 권한(rwxr-xrw-)으로 테스트 수정을 해봅니다.
chmod 750 ftp_admin  실무 보안 권한 확정 적용 -- 보안 위협을 막기 위해 외부 제3자(Others)는 이 폴더 내부를 절대 들여다보거나 진입조차 할 수 없도록 완벽하게 차단(rwxr-x---) 통제합니다.

[ 7. 마운트 포인트 오버레이(Overlay) 은닉 현상 점검 ]

cd /  최상위 루트 디렉터리 복귀 -- 마운트 해제 작업을 에러 없이 수행하기 위해 사용 중이던 디스크 경로 밖인 / 위치로 대피합니다.
umount /export/sdb  파일시스템 연결 해제 (언마운트) -- 장착해서 쓰고 있던 1.5GiB 짜리 새 하드디스크 파티션 장치를 일시적으로 시스템에서 떼어냅니다.
df -h  장치 연결 해제 상태 확인 -- 디스크 사용량 목록에서 /dev/sdb5 장치 주소가 말끔히 사라졌는지 육안으로 대조합니다.
mkdir /export/sdb/sevas  본체 디렉터리 내 가상 폴더 은밀하게 생성 -- 중요 포인트: 하드디스크가 연결되지 않은 메인 디스크 영역의 빈 틈새 폴더에 sevas라는 이름의 유령 디렉터리를 몰래 심어놓습니다.
ls -dl /export/sdb/sevas  유령 디렉터리 생성 여부 검사 -- 디스크 본체 스토리지 자체에 폴더가 올바르게 저장되었는지 확인해 둡니다.
mount -a  하드디스크 파티션 재연결 -- fstab을 호출하여 1.5GiB 하드디스크 파티션을 원래 자리에 다시 덮어씌우듯 마운트합니다.
cd /export/sdb  재연결된 새 디스크 진입 -- 다시 하드디스크 내부 공간으로 걸어 들어갑니다.
ls -l  오버레이 결과 최종 눈으로 확인 -- 디스크가 위로 마운트되면서 조금 전 본체 디스크에 몰래 만들었던 유령 폴더 sevas는 하드디스크 데이터에 완전히 가려져 보이지 않게 되고, 실제 하드디스크 내부에 저장되어 있던 데이터(home, lost+found)만 안전하고 깨끗하게 노출되는 리눅스 마운트 은닉 메커니즘을 최종 검증 확인하며 모든 여정을 마칩니다.

풀패키지명
php-cli-5.3.3-49.el6.x86_64.rpm

php = 주패키지명 (대표패키지)
cli   = 서브패키지 (보조패키지)
5.3.3 = 버전  ( 5.  = 메이저(변경)  3. = 마이너 (추가) 3. = 패치 (버그패치 ) )
el6   = centos6버전 (배포판)
x86_64 = 아키텍처

-- x는 보통 그래픽을 의미

-- i686은 인텔 CPU 를 사용할 경우 이렇게 표기함
rpm=확장자


mkdir /cdtest
ll /dev |grep cdrom
mount /dev/sr0 /cdtest
cd /cdtest
df -h
pwd

기본 운영체제 패키지 클릭
wget으로 다운로드를 받는다.
위와 같이 출력되면 성공이다
rpm 옵션에 따른 차이를 볼 수 있다.
설치 및 확인하는 루틴이다.


php-cli-5.3.3 => 패키지명

rpm(redhat package manager)
옵션
-i 설치 
-v 설치내용보기 
-h ##### hash 보기
-e 삭제
-U update (버전업)   설치 + 버전업
-F fresh (비교후 버전업) 버전업 (미설치시 설치X)

Uvh, Fvh와 같이 사용함

--  설치시에는 의존성을 신경써야하지만, 삭제시에는 굳이 의존성을 신경쓸 필요가 없다.


패키지설치  
rpm -ivh 풀패키지명 
패키지 삭제
rpm -e 패키지명 

-q 질의
-a 모두
--force 덮어쓰기
--nodeps 의존성 무시

--nodeps로 의존성을 무시하고 삭제한다.



패키지 확인
rpm -qa |grep 대표패키지명
rpm -qf 파일명  파일이 속한 패키지 확인
rpm -ql 패키지명   패키지에 속한 파일명 출력
rpm -Vv 패키지명  패키지에 속한 파일 속성들 출력(설정 파일을 찾을때 많이 사용함)
rpm -qi 패키지명  패키지 정보보기

패키지 속 파일들을 보여줌


***패키지 설치시 주의 할 점****
1. 대표패키지부터 작업한다. -- (의존성 패키지가 뭔지 확인!)
2. 작업시 (설치,삭제) 의존성 오류 (Failed dependencies)는 절대 무시하지 않는다.
3. 의존성 오류 발생시 제시한 패키지 가장 아래부터 작업한다.
4. 패키지의 버전은 반드시 일치 해야한다.
5. 순서대로 진행한다.
6. 가급적 의존성을 무시하는 --nodeps 옵션을 사용하지 않는다 (삭제시에는 사용)
7. lib.so,/dir 등은 패키지가 아닐 가능성이 많으므로 일단 무시한다.
8. 모든 패키지를 다 가지고있을경우에는 --force로 강제 설치가 가능하다(다운그레이드)
9. 삭제는 설치의 역순


appstream

php
php-common   (nodeps) 





[ 실습 문제 ]
devel (호환성 패키지)
씨디룸을 마운트하고  krb5-devel 을 설치해보세요


libselinux-devel

pcre2-utf32-8.42-6.el8.x86_64.rpm
pcre2-utf16-8.42-6.el8.x86_64.rpm
pcre2-devel-10.32-3.el8_6.x86_64.rpm

### 안되면 ####
pcre-cpp-8.42-6.el8.x86_64.rpm












pcre-devel-8.42-6.el8.x86_64.rpm
pcre-utf16-8.42-6.el8.x86_64.rpm  
pcre-utf32-8.42-6.el8.i686.rpm







패키지 설치해볼것     (TAB키를 지배하는자가 콘솔을 지배한다!!!!) 탭키 연습 많이 해주세요~
설치 다되신분은 삭제도 해보세요~
rpm -qa |grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
================================================
rpm -ivh mariadb(tab 3번) 하게되면 목록이 나옴 
mariadb-5.5.68-1.el7.x86_64.rpm  
================================================      
mariadb-bench-5.5.68-1.el7.x86_64.rpm  (의존성오류)
perl(DBI)       <<<<<<<<<<  (보조패키지)
의존성패키지 
perl-Compress-Raw-Zlib-2.061-4.el7.x86_64.rpm
perl-Compress-Raw-Bzip2-2.061-3.el7.x86_64.rpm
perl-IO-Compress-2.061-2.el7.noarch.rpm
perl-PlRPC-0.2020-14.el7.noarch.rpm
perl-DBI-1.627-4.el7.x86_64.rpm
perl-GD-2.49-3.el7.x86_64.rpm
perl-Data-Dumper-2.145-3.el7.x86_64.rpm
perl-Net-Daemon-0.48-5.el7.noarch.rpm
=============================================
mariadb-devel-5.5.68-1.el7.x86_64.rpm

의존성패키지
openssl-devel-1.0.2k-19.el7.x86_64.rpm
krb5-devel-1.15.1-50.el7.x86_64.rpm
zlib-devel-1.2.7-18.el7.x86_64.rpm
libselinux-devel-2.5-15.el7.x86_64.rpm
pcre-devel-8.32-17.el7.x86_64.rpm
libverto-devel-0.2.5-4.el7.x86_64.rpm
libsepol-devel-2.5-10.el7.x86_64.rpm
libcom_err-devel-1.42.9-19.el7.x86_64.rpm
keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm 

======================================================
mariadb-server-5.5.68-1.el7.x86_64.rpm
mariadb-test-5.5.68-1.el7.x86_64.rpm

이후  mariadb-server 및 test설치해볼것 !!!! ( lib는 이미 있으니 그냥 두세요~~~)

rpm -qa |grep maria
rpm -qa |grep maria -wc







=============================================================
mariadb-5.5.68-1.el7.x86_64.rpm
===========================================
mariadb-devel-5.5.68-1.el7.x86_64.rpm
(주의사항) ***  libselinux-devel 설치시 (pcre-devel)***


mariadb-libs-5.5.68-1.el7.x86_64.rpm
rpm -ivh --force 설치

mariadb-server-5.5.68-1.el7.x86_64.rpm    
rpm -ivh --nodeps 설치

mariadb-test-5.5.68-1.el7.x86_64.rpm
perl (Test::More)  perl-Test-Simple  <<<  설치시 의존성 나오는데 처리해주세요.

==============================================================

rpm -qa |grep mariadb -wc
5개
rpm -qa |grep mariadb

==============================================================
yum   ==   현재는 dnf로 사용하면됨

온라인 패키지
rpm기반의 자동업데이트


yum update   <=======설치된 패키지 업데이트
yum update 친뒤에 n로 취소

dnf install     설치
dnf remove   삭제

dnf list  => 설치 가능 리스트
dnf search => 설치가능리스트 + 설명충

 


[ 간단실습 ]
cd / 로 이동  (패키지명이 없는곳에서 실행)
yum install php-* -y
yum install php-* -y --skip-broken  (패키지가 충돌할 경우 해당 패키지 스킵)

-y 옵션   y/n옵션을  y로 스킵

설치후 rpm -qa |grep php

yum remove php-* 
==============================================================
 ********yum 사용시 장애 처리 ******

1.case #  검색파일 존재시  
                ( 패키지가 다 설치가 안된다.  총 20개인데 5개만 설치)

mkdir /php 
cd /php
touch  php
yum install php*   (3개가 나온다  n로 선택)
rm php
yum install php*  
 ( --skip-broken이 나와 설치 X 하지만 패키지 많이 보임)

결과:
***검색파일이 존재 하지 않는  / 에서 실행하는것이 좋다. ***


2.case #  중복실행 ******
yum update  동작 후 바로  ctrl + z
yum update  (시간정보 메세지가 뜸)

1. 세션을 다시 열어서 kill -9  로 PID를 종료한다.
2. rm -rf /var/run/yum.pid 를 삭제  

3.case# DB갱신
yum clean all (저장되어있는 DB캐쉬내용을 삭제)
=========================================================

일반장치 이미지 및 파일변화

dd = 가변길이장치 비트단위복사

dd
/dev/null =>  버림
/dev/zero => 0000으로 채워진

bs => 복사될 단위 byte
count => bs에서 복사되는 횟수

#### 1M 이미지 만들기 ####
dd if=/dev/zero of=test1.dd bs=1024 count=1000
dd if=/dev/zero of=test2.dd bs=4096 count=250

#### cd이미지 만들기
cdrom 인식
dd if=/dev/sr0 of=cd.dd bs=4096

============================================
losetup (loop장치변환)   <내부장치>

[설정]
losetup /dev/loop[번호]  [이미지명]
[확인]
losetup -a
[삭제]
losetup -d /dev/loop[번호]

###장치 연결해보기 #################

mkfs.ext4  test1.dd  (포멧)
losetup /dev/loop3  test1.dd
losetup -a [확인]
mount /dev/loop3  /test1

df -Th 확인

umount /dev/loop3  (장치해제)
losetup -d /dev/loop3  (로컬장치해제)
losetup -a 확인

##################################
*** 보통 아래와 같은 방법으로 사용 ***
mount -o loop cd.dd /cd
losetup -a

### 복제된 CD이미지 마운트 ###
mkdir /cd
mount -o loop cd.dd /cd
df -Th


================================================
 *** 시스템 지망생은 필수 ***
yum.repo (yum db저장소 )

위치 : /etc/yum.repos.d

yum repolist === yum 저장소 리스트 확인

yum remove httpd-*
yum install epel-release  (페도라 리눅스 repo위치)
yum install httpd*    (설치하지마세요)

=== repo 제어 ===================================================
--enablerepo 활성
--disablerepo  비활성

yum repolist
yum repolist --disablerepo=base,extras,updates (epel만사용)
yum repolist --disablerepo=epel  (epel만 제외)

yum repolist --disablerepo=* --enablerepo=epel  (epel만 사용)

***실전 repo ***
yum --disablerepo=* --enablerepo=epel install bind* <<<이방식으로 많이 쓰임

======================================================================

[실습]
기존의 repo를 /backup에 이동시킴
mkdir /backup
mv /etc/yum.repos.d/* /backup

####repo 로컬 연결 ####
 vi local.repo
[local-repo]
baseurl=file:///cd
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

yum repolist 확인
yum install php 

**********************
GPG는 
GnuPG = GNU Privacy Guard로 PGP(Preety Good Privacy)를 대체하는 
암호화, 복호화 프로그램
**********************
***문제***
LINUX 서버 압축을 10.10.10.10으로 마춰주시고
50.50.50.50의 /sevas 를 이용해서 패키지 설치 할수 있도록
repo설정을 진행하세요~~~~~~ GNS   
vmnet1  linux-client (50.50.50.50)
vmnet2  linux-server (10.10.10.10)

[linux-server]
rpm -e epel-release 
rpm -qa  |  epel (삭제확인)
yum install httpd* -y   ( 웹서버 설치)
service httpd restart   ( 웹서버 실행)
netstat -lntup |grep http  ( 80포트 확인)
service firewalld stop     (방화벽 내리기)
mkdir -p /var/www/html/sevas
mount -o loop /cdpack/cd.dd   /var/www/html/sevas
df -h  (마운트확인)

[linux-client]

cd /etc/yum.repos.d 
mkdir /backup
mv * /backup

vi sevas.repo
[sevas-repo]
baseurl=http://50.50.50.50/sevas
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

yum repolist [확인]
yum install php 


** find /etc -name *KEY*












[인터넷사용]
vi sevas.repo
[sevas-repo]
baseurl=http://
enabled=1
gpgcheck=1
gpgkey=http://


















 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형