Yum 삭제 - yum sagje

CentOS 7 기준

Python 설치 하다가 가끔 yum 명령어 꼬여서 오류가 나는 현상이 발생 하곤 한다.

yum 명령어 자체 실행이 안되고 다른 오류 메세지를 발생 하기도 한다.

필자는 아래와 같은 오류 명령어 발생했다.

attributeerror: 'yumconf' object has no attribute 'usercache'

이때는 yum 자체를 완전히 삭제하고 재설치를 하면 된다.


1. yum 삭제

$ rpm -e --nodeps yum

2. yum 설치 패키지 다운로드

http://mirror.centos.org/centos-7/7/os/x86_64/Packages/

아래의 3개의 파일을 다운로드 받는다.

  • yum-3.4.3-168.el7.centos.noarch.rpm
  • yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
  • yum-metadata-parser-1.1.4-10.el7.x86_64.rpm

3. yum 재설치

$ rpm -Uvh --nodeps yum-3.4.3-168.el7.centos.noarch.rpm             
$ rpm -Uvh --nodeps yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm
$ rpm -Uvh --nodeps yum-metadata-parser-1.1.4-10.el7.x86_64.rpm

CentOS yum 패키지 삭제

Yum을 삭제하는 것이 아니라, yum으로 다른 패키지를 삭제하는 것

## 설치 확인 

[root@ngio ~]# yum list installed java*jdk
... (생략)
Installed Packages
java-1.7.0-openjdk.x86_64            1:1.7.0.9-2.3.3.el5.1             installed


## 패키지 삭제

[root@ngio ~]# yum remove java-1.7.0-openjdk.x86_64
... (생략)
================================================================================
 Package                    Arch     Version                  Repository   Size
================================================================================
Removing:
 java-1.7.0-openjdk         x86_64   1:1.7.0.9-2.3.3.el5.1    installed    52 M
Removing for dependencies:
 java-1.7.0-openjdk-devel   x86_64   1:1.7.0.9-2.3.3.el5.1    installed    26 M

Transaction Summary
================================================================================
Remove        2 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]: y


## 재확인

[root@ngio ~]# yum list installed java*jdk
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Error: No matching Packages to list

yum info [패키지 이름]

YUM 명령어 사용법

1. 패키지 조회 (설치가능 + 설치된 패키지)

1) 명령어

yum list | grep [패키지 이름]

2) 사용예

yum list | grep nginx

2. 설치된 패키지 조회

1) 명령어

yum list installed | grep [패키지 이름]

2) 사용예

yum list installed | grep nginx

3. 패키지 검색

1) 명령어

yum search [검색어]

2) 사용예

yum search nginx

4. 패키지 정보보기

1) 명령어

yum info [패키지 이름]

2) 사용예

yum info nginx

5. 패키지 설치

1) 명령어

yum install [패키지 이름]

2) 사용예

yum install nginx

6. 패키지 업데이트

1) 명령어

yum update [패키지 이름]

2) 사용예

yum update nginx

5. 패키지 삭제

1) 명령어

yum remove [패키지 이름]

2) 사용예

yum remove nginx

가끔 리눅스에서 패키지를 잘 못 설치해서 설치된 패키지를 삭제해야될 경우가 있는데요

아래와 같이 하면 해결됩니다.

1. 원하는 패키지만 삭제하기

# yum remove package_name

2.  dependencies가 있는 전체 패키지 삭제하기

# yum install yum-plugin-remove-with-leaves

# yum remove package_name --remove-leaves

끝 !

[명령어] rpm & yum - 패키지 설치·관리·삭제

반드시 rpm 명령어 사용법에 대해 알기 전에,
이전 포스팅에 있는
rpm 명령어 유의사항에 대해 잘 숙지하고 알아보도록 하자.



rpm
Redhat Package Manager
Redhat 계열 리눅스에서 패키지 설치와 관리를 할 수 있는 명령어
패키지를 설치하고, 어떤 프로그램들이 있는지 확인하고, 어떤 구조로 되어있는가를 알 수 있게 한다.


rpm -[옵션] [패키지명-버전.시스템아키텍처(.rpm)]
옵션 뒤에 대상으로 할 패키지의 정보에 대해서는
이전 포스팅을 반드시 참고하고 rpm 명령어를 사용하도록 하자.


rpm -qa | grep [패키지명]
모든 패키지 확인, 조회

-q 옵션
query (질의), 패키지 조회시에 사용
-a 옵션
all (모두), 모든 패키지
grep 명령어
문자열 검색

Yum 삭제 - yum sagje






rpm -ivh (--nodeps) [패키지명]
패키지 설치

-i 옵션
install (설치), 패키지 설치
이 옵션은 리눅스에 설치되어 있지 않을 때 사용해야 한다.
-v 옵션
verbose, 과정을 자세히 출력
-h 옵션
hash, 몇 퍼센트가 진행되고 있는지
#로 게이지가 올라가는 것처럼 표현
--nodeps
의존성을 검사하지 않겠다는 의미
이 옵션은 웬만하면 사용하지 않는 것이 좋다
가급적 사용하지 말도록 하자.

Yum 삭제 - yum sagje






rpm -e (--nodeps) [패키지명]
패키지 삭제

-e 옵션
erase, 리눅스에 패키지가 이미 설치되어 있는 경우, 삭제 진행

Yum 삭제 - yum sagje







설명은 여기까지 하고,
이제 실제로 rpm 명령어를 사용해가면서 이 명령어에 대해 익혀보도록 하겠다.
이 실습을 하기 전에, 반드시 rpm 유의사항에 대해 잘 숙지하고 하도록 하자.

vi 프로그램은 리눅스에서 없어서는 안될
문서 편집 프로그램이다.
이 프로그램을 삭제하고, 다시 깔아보도록 하자.


Yum 삭제 - yum sagje

vi 프로그램에 관한 패키지는 총 4개가 있음을 확인할 수 있다.
유의사항에 따라, 일단 화면 순서대로 삭제하려 시도하니,
Failed dependencies, 의존성 오류가 뜬다
오류를 찬찬히 읽어보니, vim-enhanced 패키지를 먼저 삭제해야 한단다.

Yum 삭제 - yum sagje

그래서 vim-enhanced 패키지를 먼저 삭제 후, vim-common을 삭제하니 성공적으로 삭제가 된다.
하지만 vim-minimal 패키지에서 다시 오류가 뜬다.
sudo 패키지를 먼저 삭제해야 한다.

Yum 삭제 - yum sagje

이로써 vim 패키지를 모두 삭제했다.
vi 명령어를 사용해보니, 명령을 찾을 수 없다고 뜨며 프로그램이 실행되지 않는다.

이제 vi 프로그램을 다시 설치해보자.

Yum 삭제 - yum sagje

사실, rpm -ivh 명령어
CD가 삽입되어 있는 상태에서만 가능하다.
아니, 더 정확히 얘기하자면, 패키지 파일이 존재하는 경우에만 가능하다.
그런데 이 패키지 파일들은 CD에 존재한다.
CD를 삽입하는 방법에 대해서는 차후에 다른 포스팅에서 설명하도록 하겠다.
CD가 삽입되어 있으면, CD 안의 Packages 디렉터리 안에서
vim* 파일을 찾은 후, 차근차근 rpm -ivh 명령어로 설치해주면 되는데,
그렇지 않은 경우에는 다음과 같이 해야 한다.


첫 번째 방법, 웹 상에서 설치하는 방법이다.
http://ftp.daumkakao.com/centos/7.4.1708/os/x86_64/Packages/
이 사이트에 들어가서 ctrl+f로 vim으로 시작하는 패키지를 찾는다.

Yum 삭제 - yum sagje

그 후 리눅스로 접속해서
업로드된 이 다섯 개의 파일들
rpm -ivh 명령어로 설치하면 된다.


두 번째 방법, yum 명령어 사용
인터넷이 연결이 되어있는 경우, yum 명령어를 사용하면 손쉽게 패키지를 다운로드할 수 있다.

yum
패키지 관리 명령어
인터넷이 연결되어 있는 경우에만 사용이 가능해서,
관공서같이 인터넷 접속이 불가능한 곳에서는 무조건 rpm 명령어를 사용해야 한다.

yum install [패키지명][*]
패키지 설치

Yum 삭제 - yum sagje

Yum 삭제 - yum sagje

Yum 삭제 - yum sagje


yum update [패키지명][*]
패키지 업데이트
yum remove [패키지명][*]
패키지 삭제

하지만, 삭제는 rpm 명령어로 삭제하도록 하자.
패키지 의존성까지 삭제 우려가 있기에 위험하다.

-y 옵션
위의 명령어 모두 설치할 것이냐고 질문을 하는데,
이 옵션을 쓰면 모두 긍정의 의미가 돼서 굳이 대답하지 않아도 된다.