728x90

여러 보안 도구들은 패키지를 최신 버전으로 유지할 것을 강요(?)합니다.
아무래도 노출된 취약점들이 구버전 패키지에 대한 경우가 많기 때문이죠.
어김 없이 기억력은 쇠퇴하고 또 한번 yum 으로 패키지 설치에 실패하여 기록을 남겨둡니다.


yum 업데이트시 에러 : Error unpacking rpm package...

보통은 yum 으로 패키지 설치가 잘 됩니다. 
권한 문제가 있더라도 sudo로 왠만하면 설치가 됩니다. 
하지만 간혹 이유 없이 되지 않을때가 있습니다. 
다음과 같은 에러와 함께...

$ sudo yum update openssh-clients
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Resolving Dependencies
...
...
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : openssh-clients-7.4p1-23.el7_9.x86_64                                                            1/2
Error unpacking rpm package openssh-clients-7.4p1-23.el7_9.x86_64
error: unpacking of archive failed on file /etc/ssh/ssh_config: cpio: rename

압축 해제가 되지 않았다의 메세지가 눈에 보입니다. 
그리고 특정한 경로의 파일도 언급됩니다. 
원인이 뭘까요? 정답은 파일의 속성 문제였습니다.

속성 확인 : lsattr / 속성 교체 : chattr

파일의 속성을 확인하는 명령은 lsattr입니다.
아마도 불변(immutable) 속성이 지정되어 있어서 
파일의 교체가 실패했을 거라고 추정이 됩니다.

확인하고 교체해 보겠습니다.

$ sudo lsattr /etc/ssh/ssh_config
----i----------- /etc/ssh/ssh_config
$ sudo chattr -i /etc/ssh/ssh_config
$ sudo lsattr /etc/ssh/ssh_config
---------------- /etc/ssh/ssh_config

네, 이후 yum 명령으로 업데이트가 잘 되는 것을 확인할 수 있었습니다. 
아마도 어떤 이유로든 immutable 이 지정된 것일 수 있으니
관리자와 싸우지 않기 위해 다시 속성을 걸어줍니다.

$ sudo chattr +i /etc/ssh/ssh_config
$ sudo lsattr /etc/ssh/ssh_config
----i----------- /etc/ssh/ssh_config

뺄때 -i 였으니 본능적으로 +i 를 하니 잘 수행됩니다. 
다시 immutable 상태가 되었으니 작업을 마무리하고 커피 한잔...

#linux #lsattr #chattr #immutable #yum #yum_error

728x90
728x90

리눅스는 모든 것을 파일처럼 취급합니다.
실제 파일은 물론이고 주변 장치도 파일처럼 취급합니다. 
가령 dev 디렉터리는 device의 약어로 하위에 연결된 장치들이 파일처럼 위치하게 됩니다.

이것은 입력, 출력에도 동일하게 해당됩니다. 
입력과 출력은 입력 스트림, 출력 스트림의 약어로 
입력 스트림의 대표적인 것은 키보드이고
출력 스트림의 대표적인 것은 모니터입니다.

입력 스트림은 stdin(standard input)이며 
출력 스트림은 stdout(standard output)입니다. 
에러도 출력 스트림이지면 특별히 stderr(standard error)로 정의해 두었습니다.

이 각각도 파일처럼 취급되기 때문에 
파일에 접근할 때 사용하는 파일 디스크립터(File Descriptor)가 할당되어 있습니다. 
stdin, stdout, stderr은 시스템의 기본적인 입출력 스트림이기 때문에 
파일 디스크립터가 고정값으로 지정되어 있습니다. 

stdin = FD0
stdout = FD1
stderr = FD2

파일 디스크립터를 이용하면 재지정(redirect)을 할 수 있습니다.
가령 stderr을 stdout 으로 보내고 싶으면 2>1 이 됩니다.

$ curl https://www.google.com 2> response.txt

재지정의 기본 값은 1이기 때문이 1> 과 > 는 동일한 의미가 됩니다. 
입출력 스트림의 파일 디스크립터는 사용하는 프로그램이 
어떤 출력으로 어떤 값을 내보내는지를 이용하여
다른 애플리케이션 등으로 연동할 때 유용하게 쓸 수 있습니다.

#리눅스 #기본명령어 #스트림 #입출력스트림 #파일디스크립터 #fd #stdin #stdout #stderr

728x90
728x90

 

올해 첫 번역서가 예약판매를 시작했습니다.
직전에 번역했던 <관찰 가능성 엔지니어링>의 연장선상에서 진행한 작업인데요
전작이 OpenTelemetry의 응용에 집중하고 있는 책이라면 
이 번 번역서는 사례와 문화를 중심으로 실무 적용과 관련한 이야기들을 많이 풀어내고 있습니다. 

 

데브옵스 엔지니어를 위한 실전 관찰 가능성 엔지니어링 - 예스24

관찰 가능성은 복잡한 최신 시스템의 소프트웨어를 구축, 수정, 이해하는 데 매우 중요한다. 관찰 가능성을 채택한 팀은 코드를 신속하고 자신 있게 배포할 수 있으며, 이상값과 비정상적인 동

www.yes24.com

 

전작과는 다소 다른 관점의 책이기 때문에 
"관찰 가능성"을 공부하거나 도입을 생각하고 있다면 
두권의 책을 모두 읽어보실 것을 권해드립니다!

728x90
728x90
728x90

+ Recent posts