일부 상황에서는을 사용하여 로컬 패키지를 수동으로 설치해야합니다 dpkg -i <packagename>
. 때로는 apt
해당 패키지 의 기능을 활용하는 것이 더 유용 하므로 질문은 다음과 같습니다.
Xubuntu 13.04 / Ubuntu와 같은 데비안 기반 리눅스 배포판을 사용하여 무작위 패키지를위한 로컬 리포지토리를 어떻게 빠르게 만들 수 있습니까?
답변
공식 저장소에서 전체 패키지 트리 를 복제하고 소스 우선 순위를 미세 조정 하려는 상황과 구별해야합니다 . 랜덤 패키지는 테스트를 위해 로컬로 컴파일되거나 단편적으로 복사되는 가상 패키지를 의미합니다. 이제 더 이상 사용되지 않는 문서를 기반으로 한 간단한 설정이 있습니다 .
먼저 패키지를 호스팅 할 디렉토리를 만듭니다.
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
되면 Packages.gz 파일 을 업데이트하기 위해 규정 된 명령을 다시 발행 apt
해야하며 새 패키지를 사용 가능하게하기 전에 업데이트해야합니다. 잘하면 이것은 테스트 목적으로 유용 할 수 있습니다 .
답변
debootstrap과 같은 도구에 필요한 전체 구조로 리포지토리를 만들려면 가장 간단한 방법은 다음과 같습니다.
-
저장소 디렉토리를 작성하십시오.
# mkdir -p /opt/debian
-
conf 서브 디렉토리를 작성하십시오.
# mkdir /opt/debian/conf
-
다음과 같은 내용으로 / opt / debian / conf / distributions 파일을 만듭니다 (사용중인 배포판에 맞게 조정).
Label: Local APT repository Codename: jessie Architectures: amd64 Components: main Description: Local APT repository for debootstrap
-
reprepro로 패키지를 가져옵니다.
# reprepro -b /opt/debian includedeb jessie /path/to/package.db
-
쉘 for-loop를 사용하여 패키지를 가져옵니다 (예 : APT 캐시의 모든 것).
# cd /var/cache/apt/archives # for DEB in *.deb; do reprepro -b /opt/debian includedeb jessie $DEB; done
서명되지 않은 아카이브가 생성됩니다. –no-check-gpg 옵션과 함께 debootstrap과 함께 사용할 수 있습니다.