dnf-makecache.timer가 필요한 이유는 무엇입니까?

dnf-makecache.timer가 필요한 이유는 무엇입니까?

systemd(CentOS8)에서는 이 작업을 수행한 후에도 dnf로그에 ()가 나타나는 것을 확인했습니다. ()에 작동하는 타이머를 찾았습니다./var/log/messagesdnf remove dnf-automaticsystemctl list-unit-files --type=timerdnf-makecache.timer

온라인에서 찾을 수 있는 가장 좋은 것은 dnf-makecache "Repo Cache 업데이트"입니다. 좋습니다. 그런데 이것이 실제로 무엇을 의미합니까? 저장소 캐시를 매시간 업데이트해야 하는 이유는 무엇입니까? 업데이트를 수동으로 사용하면 이런 일이 발생하지 않나요 dnf update?

새로 고치지 않으면 최신 버전을 얻는 데 실패하거나 실패하게 됩니까 dnf update? 아니면 자동을 사용하지 않는 경우 필요하지 않은 dnf-makecache추가 기능입니까 ? dnf-automaticIMO: 이 경우 dnf-automatic제거 시 제거해야 합니다.

systemctl disable dnf-makecache.timer이 타이머를 사용하거나 비활성화할 때의 단점/단점은 무엇입니까 systemctl stop dnf-makecache.timer?

답변1

좋습니다. 그런데 이것이 실제로 무엇을 의미합니까?

이는 후속 명령의 속도를 높이기 위해 패키지의 원격 인덱스가 로컬 파일 캐시에 다운로드됨을 의미합니다 dnf.

저장소 캐시를 매시간 업데이트해야 하는 이유는 무엇입니까?

dnf이는 명령을 촉진하고 속도를 높이기 위해 수행됩니다 . eg 명령을 실행할 때마다 dnf install"새로운" 저장소 메타데이터가 있어야 합니다. 그렇지 않으면 대화형으로 명령을 실행할 때 메타데이터가 새로 고쳐질 때까지 기다려야 할 가능성이 높습니다 dnf.

타이머는 1시간마다로 설정되어 있지만 실제로는 3시간을 초과하여 실행되지는 않습니다. 이것은 버그입니다. 자세한 내용은 다음과 같습니다.여기.

dnf update를 사용하여 수동으로 업데이트하면 이런 일이 발생하지 않나요?

예, 어쨌든 기본적으로 발생합니다.메타데이터가 오래된 것으로 간주되는 경우. 즉, 기본 수명인 6시간이 초과되었습니다(저장소 정의별로 이 TTL을 재정의할 수 있음). repo가 ​​이와 같이 정의된 경우에는 이런 일이 발생하지 않습니다 metadata_expire=-1.

dnf-makecache를 새로 고치지 않으면 dnf 업데이트가 실패하거나 최신 버전을 얻지 못합니까?

아니요, 실패하지 않습니다. 메타데이터가 이미 있고 네트워크 연결이 불안정하다면 약간 더 안정적일 수 있다고 주장할 수도 있습니다.

아니면 자동을 사용하지 않는 경우 필요하지 않은 dnf-automatic에 추가되는 것입니까?

두 가지 모두 새로운 메타데이터 캐시를 사용하여 실행될 가능성이 더 높고 더 빠르게 실행되므로 dnf두 가지 모두를 보완합니다 .dnf-automatic

systemctl 비활성화 dnf-makecache.timer 및 systemctl stop dnf-makecache.timer를 사용하여 이 타이머를 비활성화할 경우의 단점/단점은 무엇입니까?

dnf설치 및 업데이트를 기다리는 속도 가 느린 명령/대화형입니다. 기사에 대한 후속 조치를 취하고 조정하지 않는 한:

metadata_timer_sync=3600

타이머는 매우 비효율적이며 별로 좋은 일을 하지 않습니다.

PS, 질문을 많이 하시겠지만, 이 커뮤니티에서는 일반적으로 한 가지 질문을 하셔야 합니다. :)

man dnf와 상담해 보세요 man dnf.conf. 올바르게 문서화하는 사람들의 노력이 헛되지 않아야 합니다.

답변2

내 Centos 8.1 서버는 방화벽과 제한된 프록시 뒤에 있기 때문에 dnf-makecache-timer는 성가신 오류를 반복적으로 생성합니다. 임의의 동적 서버 목록을 사용하는 것 같으며 모든 서버에 대해 신뢰할 수 있는 프록시 허용 목록을 추가할 수 없습니다. 이것도 그럴 것이다반대하다우리의 안전 지침.

yum을 사용하면 (아마도) 모든 패키지 관리자 작업에서 사용되고 존중될 서버 목록을 정의할 수 있습니다: mirrorlist=… 및 include_only=…

dnf-makecache 타이머에서 사용하는 서버를 제한하는 작업 솔루션이나 설정을 찾을 수 없습니다.

이상한 점은 내가 시도할 때 명령줄 호출이 결코 실패하지 않는다는 것입니다.

내가 이해하는 한 암시적인(현재 이해에 따라) 합리적인 질문은 다음과 같습니다.

"필요하지도, 원하지도 않습니다. (우리의 경우) 제어할 수 없는 오류가 발생합니다. 어떻게 비활성화할 수 있나요?

나는 여기에 대답할 것이다:

[main]- 섹션 에 추가/etc/dnf/dnf.conf

metadata_timer_sync=0

dnf.conf - 매뉴얼 페이지에 명시된 대로:

 Use 0 to completely disable automatic metadata synchronizing.

관련 정보