루트나 Sudo가 아닌 계정을 사용하여 RedHat 시스템에 액세스했습니다. Midnight Commander(mc)를 설치하고 싶은데 yum에는 루트 권한이 필요합니다. RPM 파일만 사용하여 재구축하지 않고 로컬 홈에 mc를 어떻게 설치할 수 있습니까?
답변1
이를 수행하고 루트 액세스 없이 완벽하게 작동하는 Midnight Commander를 얻는 것이 가능합니다. 다음 단계로 구성됩니다.
- 필요한 버전의 RPM 파일을 가져옵니다.
- RPM 파일의 압축을 푼다. RPM은 단지 gzip 아카이브일 뿐이며, 여기에는 또 다른 아카이브인 CPIO 파일이 포함되어 있다는 점을 인식하십시오. 이를 수행하는 방법에 대한 많은 참고 자료를 온라인에서 찾을 수 있습니다. "rpm2cpio" 명령을 찾으세요. "RPM 패키지의 cpio 아카이브에서 파일 추출"을 검색하십시오. 따라서 mc-*.rpm의 압축을 풀고 "etc"와 "usr"이라는 2개의 디렉터리를 얻을 수 있다고 가정합니다. 홈 디렉토리 아래의 디렉토리에 "mc"라고 말하면 "~/mc/etc" 및 "~/mc/usr"이 표시됩니다.
- 설정되지 않은 경우 ~/mc/usr/bin에 있는 파일에 대한 실행 권한을 설정합니다. ("chmod" 사용)
- 지금 ~/mc/usr/bin/mc를 실행하면 작동하지만(적어도 내 RHEL 7.4에서는 작동함) 파일을 찾을 수 없다는 경고 메시지가 표시되고 기능이 제한됩니다. 그러나 그럼에도 불구하고 한 번 실행하면 로컬 디렉터리를 생성할 수 있습니다.
- 환경변수 MC_DATADIR을 설정하려면 "export MC_DATADIR=~/mc/usr/share/mc"를 사용하세요. 이를 .bashrc 파일에도 추가해야 합니다. (예: "echo text_to_add >> ~/.bashrc").
- .bashrc 파일에 별칭 "alias mc=/home/vladimir.shutow/mc/usr/bin/mc"를 추가합니다. 변경 사항을 적용하려면 "source ~/.bashrc"를 사용해야 할 수도 있습니다.
- 이제 복사본을 만들어 보겠습니다. ~/mc/etc/mc의 내용을 ~/mc/usr/share/mc에 복사합니다.
- ~/mc/usr/libexec/mc의 내용을 ~/.local/share/mc에 복사합니다.
- ~/mc/usr/share/mc/syntax/Syntax 파일을 ~/.config/mc/mcedit 디렉터리에 복사합니다.
- 뷰어 확장이 제대로 작동하도록 하려면 ~/mc/usr/libexec/mc/ext.d 디렉터리의 모든 *.sh 파일에 대한 실행 권한을 설정하고 ~/mc/usr/share/mc/mc 모든 줄을 편집하세요. /usr/libexec/mc/ext.d/*.sh 파일을 참조하는 .ext 파일 중 ~/mc/usr/libexec/mc/ext.d/*.sh를 가리킵니다.
이제 "mc"를 실행하면 Midnight Commander가 나타납니다.