Debian 기반 Linux 배포판을 사용하여 임의 패키지에 대한 로컬 적절한 저장소를 빠르게 만드는 방법은 무엇입니까?

Debian 기반 Linux 배포판을 사용하여 임의 패키지에 대한 로컬 적절한 저장소를 빠르게 만드는 방법은 무엇입니까?

어떤 경우에는 로컬 패키지를 수동으로 설치해야 합니다 dpkg -i <packagename>. 때로는 패키지의 기능을 활용하는 것이 더 유용할 수 있으므로 apt질문은 다음과 같습니다.

Xubuntu 13.04/Ubuntu와 같은 Debian 기반 Linux 배포판을 사용하여 임의 패키지에 대한 로컬 저장소를 빠르게 만드는 방법은 무엇입니까?

답변1

이는 시도하는 경우와 구별되어야 합니다.전체 패키지 트리 복사공식 저장소에서소스 우선순위 미세 조정. 무작위 패키지는 더미 패키지, 즉 테스트 목적으로 로컬로 컴파일되거나 단편적인 방식으로 복사되는 패키지를 나타냅니다. 이것은 이제 간단한 설정을 기반으로 합니다.오래된 문서.

먼저 패키지를 호스팅할 디렉터리를 만듭니다.

mkdir <packagedir>

그런 다음 .deb 패키지 파일을 그곳으로 이동하세요. 방금 생성한 디렉터리 위의 디렉터리에서 이 명령을 실행합니다(권한이 이를 허용하는지 확인하세요!).

dpkg-scanpackages packagedir | gzip > packagedir/Packages.gz

.list/etc/apt/sources.list.d/이제 다음 내용으로 확장자를 가진 파일을 만듭니다 .

deb [trusted=yes] file:///path_to_dir_above_packagedir packagedir/

그리고 적절한 데이터베이스를 업데이트하십시오.

apt-get update

이 시점에서 다른 패키지와 마찬가지로 로컬 저장소에서 패키지를 설치할 수 있습니다 apt-get install <packagename>. 로컬 저장소에 새 패키지가 추가되면 dpkg-scanpackages해당 패키지를 업데이트하기 위해 다시 규정된 명령을 실행해야 합니다.package.gz파일을 업데이트해야 하며 apt새 패키지를 사용할 수 있으려면 먼저 업데이트해야 합니다. 이것이 당신에게 유용하길 바랍니다시험목적.

답변2

하지만비슷한 답변이 이미 존재합니다.그리고AU에도 비슷한 답변이 여러 개 있습니다apt-ftparchive또한 대신 사용을 제안하기 위해 이 답변을 게시하고 있습니다.dpkg-scanpackages

apt-ftparchive안 돼 dpkg-scanpackages?

  • dpkg-scanpackages이 명령은 dpkg-dev배포용 설치 이미지와 함께 제공되지 않는 패키지에서 제공되며, 제가 관찰한 바에 따르면 해당 명령은 귀하의 컴퓨터에 설치되지 않을 수 있습니다. dpkg-dev이 명령을 사용하려면 먼저 패키지를 설치해야 합니다 dpkg-scanpackages. 로컬 저장소를 설정하는 목적은 일반적으로 인터넷에 연결되지 않은 컴퓨터에서 오프라인으로 패키지를 관리하는 것입니다.하지만 apt-ftparchive명령은 apt-utils배포판의 공통 설치 이미지와 함께 제공됩니다. 따라서 추가 패키지를 설치할 필요가 없습니다.

  • 패키지 관리를 위해 dpkg 대신 apt를 사용할 예정인데, 패키지를 스캔하는 데 apt를 사용하는 것은 어떨까요? :)


APT 로컬 저장소를 설정하는 방법은 무엇입니까?

1 단계:debs를 배치할 디렉터리를 만듭니다.

$ mkdir ~/apt-local-repository

2 단계:저장소 목록 상단에 로컬 디렉터리를 추가하세요./etc/apt/sources.list

$ head -n 1 /etc/apt/sources.list
deb [trusted=yes] file:/home/pandya/apt-local-repository/ ./
  • 설정하지 않을 경우 를 통해 패키지 설치 시 매개변수를 설정 [trusted=yes]해야 하니 참고하세요 .--allow-unauthenticatedapt

  • 이 줄은 저장소 목록의 맨 위에 추가되어 가장 높은 우선순위를 부여합니다. 에 추가하면 /etc/apt/sources.list.d/apt는 (정의된 대로) 온라인 저장소에서 설치를 시도하여 /etc/apt/sources.list로컬 저장소에 더 낮은 우선순위를 부여합니다.

3단계: 빚을 갚다~/apt-local-repository

4단계: 인덱스 패키지 목록 사용aptftparchive

$ cd ~/apt-local-repository/; apt-ftparchive packages . > Packages

5단계:업데이트 적절한 인덱스/데이터베이스 사용sudo apt update

완벽한. 이제 .dll을 사용하여 deb 패키지를 설치할 수 있습니다 sudo apt install <packagename>. 로컬 데이터베이스를 변경할 때마다 3~5단계를 반복하세요.


유용한 팁들:

  • apt-cache policy <packagename>APT가 로컬 deb 패키지를 인식하고 가장 높은 우선순위를 부여하는지 확인하기 위해 실행할 수 있습니다.

  • sudo apt-get --print-uris install <packagename>모든 종속성이 충족되는지 또는 추가 패키지를 다운로드해야 하는지 확인하기 위해 실행할 수 있습니다 . 또한 i) ftp://는 로컬 저장소의 패키지를 나타내고/또는 ii) http://는 인터넷에서 다운로드해야 하는 패키지 또는 누락된 종속성을 나타내는 URL도 나열됩니다.

다음과 같은 도구를 살펴볼 수도 있습니다.오카가리키다오른쪽저장소중간 사이즈아나그내가 만들었다.

답변3

debootstrap과 같은 도구에 필요한 전체 구조로 저장소를 생성하려는 경우 제가 찾은 가장 쉬운 방법은 다음과 같습니다.

  1. 저장소 디렉터리를 만듭니다.

    # mkdir -p /opt/debian/conf
    
  2. 다음 내용으로 파일을 만듭니다 /opt/debian/conf/distributions(사용 중인 배포판에 맞게 조정).

    Label: Local APT repository
    Codename: jessie
    Architectures: amd64
    Components: main
    Description: Local APT repository for debootstrap
    
  3. 다음 명령을 사용하여 패키지를 가져옵니다 reprepro.

    # reprepro -b /opt/debian includedeb jessie /path/to/package.db
    
  4. 예를 들어, 쉘 for 루프를 사용하여 여러 패키지를 가져옵니다. APT 캐시의 모든 것:

    # cd /var/cache/apt/archives
    # for DEB in *.deb
    do
        reprepro -b /opt/debian includedeb jessie "$DEB"
    done
    

그러면 서명되지 않은 아카이브가 생성됩니다. --no-check-gpg옵션이 있는 debootstrap과 함께 사용할 수 있습니다 .

관련 정보