/ var / cache / apt 컨텐츠를 수동으로 삭제하는 것이 안전합니까?


21

디스크 공간이 매우 제한된 임베디드 시스템에는 /var/cache/apt약 700MB의 파일 srcpkgcache.bin.*과 몇 개의 큰 *.bin파일로 가득 찬 폴더가 있습니다.

공연 sudo apt-get clean은 눈에 띄는 차이를 만들지 않았습니다.

이러한 *.bin*파일 을 수동으로 삭제해도 안전 합니까?


6
Ubuntu 14.04부터는 *.bin현재 관련 프로세스가 실행 중이 아니라고 가정하면 해당 폴더 의 파일 을 제거하는 것이 안전합니다 . 다음 apt-get update*.bin파일 을 재생성 합니다. 이 질문은 확실히입니다 하지 에있는 파일에 대해 /var/cache/apt/archives,하지만 파일 /var/cache/apt/*.bin. 큰 차이. 전자는 발행하여 청소할 수 있으며 apt-get clean후자는 수동으로 제거해야합니다. 분명히 질문을 끝내기 위해 투표 한 사람들 은 질문을 제대로 읽지 못했습니다 . 안타깝게도 바운티에서 일부 담당자를 수여 한 후 다시 열 수 없습니다.
0xC0000022L

3
입니다 하지 중복. 링크 된 대답은 하위 디렉토리에 관한 archives/var/cache/apt/이 하나가에 관한, *.bin*파일.
Olaf Dietsche

답변:


11

실제로는 아닙니다. 이러한 파일은 시스템이 사용 가능한 항목과없는 항목을 판별하는 데 도움이됩니다. 해당 디렉토리를 비우면 apt-get 시스템이 손상됩니다. 다음은 몇 가지 팁입니다.

먼저 자동 청소

추가하다

DPkg::Post-Invoke { "apt-get clean"; };

끝까지 /etc/apt/apt.conf. apt 및 dpkg 프로세스는 더 오래 걸리지 만 캐시 디렉토리는 항상 깨끗합니다.

다음으로 아카이브 제거

사용하지 않는 모든 소스 아카이브를 제거하고 비활성화하여 시작하십시오. 임베디드 시스템에서는 필요하지 않을 것입니다. 그런 다음 사용하지 않는 모든 아카이브를 제거하십시오. apt-cache policy확실하지 않은 경우 패키지의 출처를 파악할 수 있습니다 .

아카이브 제거

일부 PPA는 1 개 또는 2 개만 필요할 때 많은 수의 패키지가 포함되어있어 무섭습니다. 해당 PPA를 비활성화하고 deb 파일을 수동으로 설치하십시오. 이 경우 공간이 절약되지만 자동 업데이트가 느슨해집니다. dpkg는 의존성을 처리하므로, thing-with-tons-of-deps.deb를 설치 한 후 실행 apt-get -f install하여 의존성을 가져올 수 있습니다.

완전히 익스트림 답변 1

임베디드 시스템에 대해 이야기했기 때문에 기본 리포지토리의 90 %가 아무런 도움이되지 않습니다. 이것을 다루기 위해 자신의 apt-get repo 서버를 실행할 수 있습니다 . 이 링크를 참조하십시오 . 쉬운 일이 아니며 하나의 컴퓨터에 대한 PIA입니다. 그러나 이러한 기계가 여러 대 있다면 그만한 가치가 있습니다. (repo 서버는 실제로 사용하는 패키지의 하위 집합 만 호스팅 할 수 있습니다. 전체를 미러링 할 필요는 없습니다)

완전히 극단적 인 답변 2

공간이 실제로 큰 문제이면 apt를 모두 비활성화하고 dpkg를 통한 수동 설치로 되돌릴 수 있습니다. 여러 임베디드 시스템 에서이 작업을 수행해야했습니다. 작동하지만 관리자 악몽입니다.


이것은 훌륭한 답변 (특히 완전히 극단적 인 답변)이지만 우분투 14.04에는 더 이상 /etc/apt/apt.conf가 없습니다. 현재 모범 사례는 무엇입니까?
zachaysan

1
파일이 존재하지 않으면 파일을 만드십시오. 여전히 읽을 수 있습니다.
coteyr

5
*.bin파일 을 제거하는 것이 안전하지 않은 이유는 무엇입니까? 모든 실행은 apt-get update해당 파일을 처음부터 다시 테스트합니다 (테스트). 예를 들어, 유스 케이스는 LXC 컨테이너 템플리트를 작성하고 아카이브를 가능한 한 많이 제거하려는 것입니다. 안전하지 않은 이유는 없습니다. 그리고 당신의 대답은 이유를 나타내지 않으며 단지 안전하지 않다고 말합니다 . 우분투 14.04 에서 완벽하게 안전 하다는 것을 테스트했습니다 .
0xC0000022L 2016 년

1
당신은 다음과 같은 말을하는지 apt-cache clean청소기 캐시 발생하는 dpkg를 호출에 있지만, 사용자는 말한다 apt-cache clean그들에게 깨끗한 아무것도하지 않았다. 또한 dpkg는 패키지 통계에 대한 정보를 얻기 위해 내용을 사용하지 않기 때문에 귀하의 대답은 완전히 틀 렸습니다/var/cache/apt/* .
Anwar

1
apt-get을 맨 페이지는 명확의 기능에 대해 설명 clean검색된 패키지 파일의 로컬 저장소 밖으로 * 깨끗하고 투명 도료 등을. / var / cache / apt / archives / 및 / var / cache / apt / archives / partial /에서 잠금 파일을 제외한 모든 항목을 제거합니다. 위험 할 경우 정리할 기능이 없습니다.
Anwar

3

당신은 물론 삭제 pkgcache.bin하고 srcpkgcache.bin아무 일도 발생하지 않습니다. apt-get update다시 실행 하기 위해 실행하십시오 .


... 그리고 .deb파일 삭제와 독립적으로 적용 됩니까?
einpoklum-복원 Monica Monica

1

을 유지 pkgcache.bin하고 srcpkgcache.bin안전하게 다른 사람을 삭제할 수 있습니다. 디렉토리를 만지지 마십시오!


알았어 고마워. *bin.*파일을 백업 폴더 로 임시로 옮겼습니다 . 그러나 apt-get은 왜 캐시 내부 의 캐시를 관리 합니까? 캐시 디렉토리는 기본적으로 임시 저장소 여야합니다.
ysap

이 문제는 이미 버그로보고되었습니다. :) 여기를보십시오
Frantique

pkgcache.bin 및 srcpkgcache.bin을 삭제할 수는 있지만 아무 일도 일어나지 않습니다. apt-get update는 다시 만듭니다.
Tomas M

0

물론이를 위해 NFS 공유 (네트워크 파일 시스템)를 만들 수 있습니다. 이러한 파일은 서버에 그대로두고 패키지를 업데이트 / 설치하려는 경우에만 공유를 마운트하십시오. 임베디드 환경에서 설치는 일반적으로 상대적으로 정적입니다.

sshfs는 또 다른 좋은 옵션이며 설정하기가 훨씬 쉽고 (기본적으로 SSH 만 필요) 더 많은 오버 헤드가 있습니다 (느리게).


apt 실행시기를 완전히 제어 할 수없는 경우를 제외하고는 기술적으로 작동합니다. 이와 같은 것을 사용하는 경우 apt-get update를 실행하는 cron 작업과 같은 "자동화 된"작업을 비활성화해야합니다.
coteyr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.