yum(Scientific Linux)을 사용하여 설치할 때 종속성 무시

yum(Scientific Linux)을 사용하여 설치할 때 종속성 무시

yumScientific Linux에 설치하려는 단일 패키지의 종속성을 어떻게 무시할 수 있습니까 ? CentOS/RHEL에 대한 대답은 아마도 동일할 것입니다.

lsb_release자세히 말하자면, 내가 알고 있는 유틸리티를 에 넣고 싶습니다 /usr/bin/lsb_release. 이 명령은 해당 유틸리티가 (해당 아키텍처에 대한) 패키지의 일부 yum whatprovides /usr/bin/lsb_release라고 알려 주지만 redhat-lsbX11 관련 종속성을 포함하여 많은 종속성이 있습니다.

나는 단지 lsb_release프로그램을 따르고 있기 때문에 종속성과 함께 제공되는 "엉터리"를 피하고 싶습니다. 어떻게 해야 하나요?

답변1

Goldilocks의 답변에서 힌트를 얻어 이 작은 스크립트를 생각해 냈습니다.정확히내가 원하는 것은 그 이상은 아니다. Scientific Linux 6.3에서 작성 및 테스트되었지만 다른 RHEL 파생 버전에서도 작동할 수 있습니다. 나는 스크립트에 이름을 붙였습니다 redhat-lsb.sh(얼마나 비창조적인지).

#!/usr/bin/env bash
WKPKG=redhat-lsb
WKDIR=$HOME/$WKPKG
[[ -d "$WKDIR" ]] && [[ "x$1" != "x-f" ]] && { echo "ERROR: not removing $WKDIR. Use -f to force it."; exit 1; }
(
    [[ -d "$WKDIR" ]] &&  rm -rf "$WKDIR"
    mkdir "$WKDIR" && \
        cd "$WKDIR" && \
        yumdownloader $WKPKG && \
        cd / && \
        rpm2cpio "$WKDIR"/redhat-lsb-*.$(uname -m).rpm | cpio -idmv
) && rm -rf "$WKDIR"

sudo ./redhat-lsb.sh또는 로 호출합니다 sudo ./redhat-lsb.sh -f(후자는 작업 디렉토리가 이미 존재하는 경우 삭제합니다).

그 기능은 다음과 같습니다:

  1. 폴더 $HOME/redhat-lsb작업
  2. 패키지를 다운로드하는 데 사용됩니다 yumdownloader.
  3. 쉘 와일드카드를 사용하여 올바른 것을 선택하십시오 .rpm:redhat-lsb-*.$(uname -m).rpm
  4. /설치하려는 위치이므로 으로 변경하세요.
  5. rpm2cpio표준 출력으로 압축을 풀기 위해
  6. cpio이를 캡처하여 현재 디렉터리에 추출합니다(필수 단계입니다 sudo).
  7. 마지막으로 작업 폴더를 삭제하십시오.

그 후, 큰 성공을 거두었습니다. 모든 종속성 없이 작동합니다.

$ lsb_release -a
LSB Version:    :core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: Scientific
Description:    Scientific Linux release 6.3 (Carbon)
Release:        6.3
Codename:       Carbon

결과 패키지 자체에는 정적으로 링크된 실행 파일만 포함됩니다. 이제 남은 것은 쉘 스크립트와 데이터뿐입니다.

답변2

당신은 할 수 없습니다. 적은 양의 저장 공간과 모든 MB가 포함되어 있지 않거나 전체 DE가 포함되어 있지 않은 경우(아마도 그렇지 않을 수도 있음) X 항목을 설치하는 것은 아마도 의미가 없을 것입니다. 여기에는 사용자가 원하지 않는 일부 시스템 구성이 포함될 수 있기 때문입니다. 원하지 않는다.

그래도 이 경로를 사용하고 싶지 않다면 적합한 .rpm을 찾을 수 있어야 합니다. (yum을 사용하여 설치하지 않고 저장소에서 rpm을 가져올 수 있습니다.이봐;아직 시도하지 않았으며 종속성이 문제를 일으킬지 여부는 알 수 없습니다. 가장 쉬운 방법은 아마도 사용하는 것입니다.rpm 검색). 그런 다음 rpm2cpiolsb_release 바이너리를 사용하여 rpm의 압축을 풀고 직접 설치할 수 있습니다 . 먼저 ldd lsb_release필요한 라이브러리가 사용 가능한지 확인하세요. 필요한 rpm의 다른 작은 부분이 있을 수 있습니다.

이미 인터넷에 rpm2cpio에 대한 설명이 있으니 다시 반복하지는 않겠습니다. 파일 브라우저를 사용하는 경우 mcrpm2cpio 대신 이것을 사용할 수 있습니다. 이를 통해 tarball 또는 zip 파일처럼 rpm 내부를 탐색할 수 있습니다.

관련 정보