리눅스 환경에서 작업시 가장 멘붕오는 상황은 yum이 막혀있을때다........ ha .....
* YUM (Yellodog Updater Modified)이란 ?
리눅스의 패키지 설치 프로그램.
인터넷을 통해서 필요한 파일을 저장소에서 자동을 모두 다운로드 해서 설치하는 방식.
단, yum은 외부 레파지토리 서버랑 통신해야하기 때문에 네트워크 설치 후 사용 가능하다.
yum 사용이 불가한 경우
에러코드:
Loaded plugins: amazon-id, rhui-lb, search-disabled-repos
Could not retrieve mirrorlist https://None/pulp/mirror/rhui-client-config/rhel/ server/7/x86_64/os error was
14: curl#6 - "Could not resolve host: None; Unknown error"
One of the configured repositories failed (Unknown),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:
1. Contact the upstream for the repository and get them to fix the problem .
2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).
3. Run the command with the repository temporarily disabled
yum --disablerepo=<repoid> ...
4. Disable the repository permanently, so yum won't use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:
yum-config-manager --disable <repoid>
or
subscription-manager repos --disable=<repoid>
5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:
yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true
Cannot find a valid baseurl for repo: rhui-REGION-client-config-server-7/x86_64
1. 방화벽때문에 인터넷이 막혀서 외부 레파지토리에 접근할 수 없는경우.
- yum레파지토로 접근할수 있도록 해당 url 의 80포트를 방화벽 오픈해주어야 한다.
>>해결법: 업체에 방화벽 오픈 요청을 한다
2. DNS서버 설정이 되어있지 않아서 기본레포지토리 url을 인식하지 못하는 경우.
- DNS서버 설정을 해주어야 한다.
>>해결법:
1) DNS설정파일인 resolv.conf파일을 열어서 확인 및 설정을 한다.
vi /etc/resolv.conf
2) nameserver와 ip를 입력한다. 여러개인 경우, 아래에 추가한다.
nameserver 8.8.8.8 [구글dns]
nameserver 10.10.10.10 [사내별도 dns사용하는경우]
3) network재시작 하면 적용된다.
service network restart
3. 80포트 any 오픈 상황임에도 불가한 경우도 있다.
1) CentOS 기본 저장소 centos 의 저장소(해외)인데, 보안상 해외 url 오픈이 불가한 경우
2) DNS서버를 구글(8.8.8.8)등 이 아닌 사내 DNS를 사용하는 경우, centos가 등록되지 않아 인식하지 못하는 경우
이런 경우에는 yum 저장소(CentOS-Base.repo)의 위치(centos url)를 변경해야한다.
해당 포스팅에서는 yum 저장소를 Daum 저장소로 변경해보겠다.
1.기존 저장소를 압축보존한다. (기존의 저장소가 존재하면 에러남.)
1. 기존repo 파일을 bz2로 압축
bzip2 /etc/yum.repos.d/CentOS-*.repo
2. 확인
yum repolist
[확인시 repolist:0 이 나와야한다.]
3. Daum.repo 파일 생성.
/etc/yum.repos.d/ 폴더에 Daum.repo파일을 만든다.
1. Daum.repo 파일생성 명령어
echo '[base]
name=CentOS-$releasever - Base
baseurl=http://ftp.daumkakao.com/centos/$releasever/os/$basearch/
gpgcheck=0
[updates]
name=CentOS-$releasever - Updates
baseurl=http://ftp.daumkakao.com/centos/$releasever/updates/$basearch/
gpgcheck=0
[extras]
name=CentOS-$releasever - Extras
baseurl=http://ftp.daumkakao.com/centos/$releasever/extras/$basearch/
gpgcheck=0' > /etc/yum.repos.d/Daum.repo
2. 확인
yum repolist
[확인시 7,949개의 repo파일리스트가 조회될 것이다.]
4. yum update 또는 install 명령어를 날려보자. 잘 된다면 성공!
5. 원복. 다시 CentOS 기본 저장소를 사용하고 싶은경우.
Daum.repo 파일을 삭제하고 CentOS repo파일들을 복원한다.
rm -f /etc/yum.repos.d/Daum.repo
bunzip2 /etc/yum.repos.d/CentOS-*
yum repolist
'Back-end > Linux' 카테고리의 다른 글
[linux] 간단한 쉘 스크립트 (Shell Script) 작성 및 실행 해보기. (0) | 2021.04.28 |
---|---|
[linux] top 명령어. CPU 사용률 확인 (0) | 2021.04.15 |
리눅스 퍼미션이란? Permission (chown/chmod/umask) (0) | 2021.01.20 |
Linux환경에서 Java InstallCert를 사용하여 외부 SSL/TLS인증서를 Import 하기. (0) | 2020.12.08 |
[Linux] su / su - / sudo 명령어와 차이점 (0) | 2020.03.24 |