
라우터에 연결된 외장 하드 드라이브에 노트북과 여러 저장소의 로컬 복사본이 있습니다. 내 라우터는 삼바 공유 및/또는 FTP 서버로서 해당 파일(자격 증명 포함)에 대한 액세스를 제공합니다.
해당 리포지토리가 사용 가능할 때 확인하고 가능하면 프로세스 속도를 높이기 위해 해당 리포지토리에서 업데이트를 다운로드하도록 apt-get을 구성하고 싶습니다.
좀 더 명확하게 말하자면, 내 노트북이 Wi-Fi에 연결되어 있을 때 apt-get이 인터넷의 일반 저장소와 로컬 저장소를 모두 확인하고 싶습니다. 외부 저장소의 파일이 로컬 미러의 파일보다 최신이거나 미러를 사용할 수 없는 경우 apt-get은 인터넷에서 파일을 다운로드해야 합니다.
답변1
자신만의 저장소를 설정하는 4단계가 있습니다.
- 설치하다
dpkg-dev
- 패키지를 디렉터리에 넣습니다.
- 패키지를 스캔하고
apt-get update
읽을 수 있는 파일을 생성하는 스크립트를 만듭니다. sources.list
저장소를 가리키는 라인을 추가하세요.
설치하다dpkg-dev
터미널을 엽니다:
sudo apt-get install dpkg-dev
디렉토리
패키지를 보관할 디렉터리를 만듭니다. 이 예에서는 를 사용합니다 /usr/local/lan-repo
.
sudo mkdir -p /usr/local/lan-repo
이제 모든 패키지를 새 디렉터리로 이동하세요.
이미 다운로드한 패키지는 일반적으로 시스템에 /var/cache/apt/archives
. 설치했다면 디렉토리 apt-cacher
에 추가 패키지가 저장되어 있을 가능성이 높습니다 apt-cacher/packages
.
라는 스크립트를 생성합니다.update-lan-repo
매우 간단한 세 줄의 스크립트입니다.
#! /bin/bash
cd /usr/local/lan-repo
sudo dpkg-scanpackages . /dev/null | gzip -9c > packages.gz
update-lan-repo
위 내용을 즐겨 사용하는 텍스트 편집기 에 복사하여 붙여넣고 ~/bin
. ( ~
홈 디렉토리를 의미합니다. ~/bin
아직 존재하지 않으면 만듭니다. Ubuntu는 자동으로 해당 디렉토리를 PATH에 넣습니다. 이는 개인 스크립트를 넣기에 좋은 장소입니다.)
이제 스크립트를 실행 가능하게 만들어 보겠습니다.
chmod u+x ~/bin/update-lan-repo
스크립트 작동 방식은 다음과 같습니다.
dpkg-scanpackages
의 모든 패키지를 살펴보고 출력은 압축되어 읽을 수 있는 lan-repo
파일에 기록됩니다 (이에 대해 자세히 설명하는 참조는 아래 참조). 는 빈 파일입니다. 즉, 패키지에 대한 일부 추가 정보를 담고 있는 대체 파일을 위한 임시 변통입니다. 우리의 경우에는 실제로 필요하지 않습니다. 보다packages.gz
apt-get update
/dev/null
deb-override(5)
그것에 대해 더 알고 싶다면.
source.list 파일에 로컬 저장소를 추가해야 합니다.
echo "deb file:/usr/local/lan-repo ./" >> /etc/apt/sources.list
그게 다야.
CD/DVD 옵션
.deb 파일이 포함된 디렉터리를 CD/DVD에 저장하고 이를 저장소로도 사용할 수 있습니다(컴퓨터 간 공유에 좋습니다). CD를 저장소로 사용하려면:
간단히 다음 명령을 실행하세요.
sudo apt-cdrom add
새 저장소를 사용합니다.
그런 다음 lan-repo 디렉터리에 새 데비안 패키지를 저장할 때마다 다음을 실행하세요.
sudo update-lan-repo
sudo apt-get update
이제 Synaptic, aptitude 및 apt 명령( apt-get
, apt-cache
등)을 사용하여 로컬 패키지를 조작할 수 있습니다. apt-get 설치를 시도하면 종속성이 충족되는 한 모든 종속성이 해결됩니다.
답변2
마침내 이 문제를 해결했고 꽤 잘 작동하고 있으므로 비슷한 것을 구현하려는 사람들과 공유하고 싶습니다.
첫 번째 문제는 내 시스템이 멀티 아키텍처를 지원하므로 다운로드 오류를 방지하려면 미러링된 저장소에 i386 및 amd64 패키지(미러링된 소스는 포함하지 않음)가 모두 포함되어야 한다는 것입니다. 이 작업은 다음에서 수행됩니다./etc/apt/mirror.list이 예에서는 다음을 보여줍니다.
deb-i386 http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
나의기본_경로해당 파일에 정의된 것은/mnt/apt-미러, 라우터의 USB 포트에 연결된 외장 하드 드라이브를 Samba 공유로 마운트하는 스크립트를 실행합니다(여기에서 스크립트를 볼 수 있습니다: apt-mirror를 사용하여 LAN 라우터에 연결된 HDD에 파일을 저장하는 방법
LAN의 다른 컴퓨터에서 미러링된 저장소에 액세스하고 싶었으므로 솔루션의 다른 부분은 FTP 저장소 정의를 추가하는 것입니다.처음에~에/etc/apt/sources.list. 이 설정은적절한파일을 다운로드할 때 먼저 FTP 저장소를 사용한 다음 다음에 정의된 저장소를 사용합니다./etc/apt/sources.list.d, 미러링된 항목이 최신인 경우.
로컬 저장소는 다음과 같이 정의됩니다.
deb [arch=amd64,i386] ftp://user:password@lan-resource/apt-mirrors/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
당신이 교체하는 곳사용자FTP 서버에 대한 액세스 권한이 부여된 사용자 이름으로,:비밀번호연결(그렇지 않으면 제거)에 필요한 경우 비밀번호를 사용하고LAN 리소스LAN에 있는 FTP 서버의 주소를 사용하여(저는 편집하기로 결정했습니다)/etc/호스트하드 코딩된 IP 주소가 반복되는 것을 피하기 위해 192.168.0.1을 다음과 같이 정의했습니다.lanftp서버이 분야에서 사용하기 위해).