Red Hat 기반 시스템에서 이 작업을 수행하는 방법을 알고 있습니다.
yum –disablerepo=* --enablerepo=epel update
위 명령은 일시적으로 모든 저장소를 비활성화하고 epel을 활성화하며 epel 패키지만 업데이트합니다.
yum update–disablerepo=remi-safe,updates
활성화된 다른 모든 저장소를 업데이트하는 동안 두 개의 저장소도 비활성화됩니다.
예를 들어, 우분투에서 위와 동일한 것은 무엇입니까?
난 우리가 할 수 있다는 걸 알아/etc/apt/sources.list.d
하지만 이렇게 하면 저장소가 영구적으로 비활성화됩니다. 그렇죠?
apt-get update
예를 들어, 하나의 저장소를 일시적으로 비활성화한 상태에서 실행할 수 있는 방법이 있습니까?
답변1
저장소를 관리하는 가장 쉬운 방법은 저장소를 에 배치하는 것입니다 /etc/apt/sources.list.d/
. 이 방법을 사용하면 저장소를 비활성화하는 것은 /etc/apt/sources.list.d/repo.list
파일을 에서 로 이동하는 것처럼 간단 /etc/apt/sources.list.d/repo.list.bak
하고 저장소를 다시 활성화하는 것은 다른 방법만큼 간단합니다. 파일을 이동하고 업데이트/설치/무엇이든 실행한 다음 파일을 다시 다시 이동하여 저장소를 일시적으로 비활성화하는 스크립트를 만들 수도 있습니다.
답변2
원래 질문은 저장소가 비활성화된 상태에서 apt가 한 번만 실행되도록 실행하는 방법이었습니다. 실제로 이 작업을 수행하는 쉬운 방법은 없습니다. 기술적으로 -o 및/또는 -c 옵션을 사용하여 apt 명령에 다른 구성을 제공할 수 있지만 이는 가치 있는 것보다 더 많은 노력을 기울일 수 있습니다.
add-apt-repository 명령을 사용하여 리포지토리를 쉽게 추가하고 제거할 수 있습니다. 이것이 원래 문제에 대해 제가 볼 수 있는 가장 실용적인 해결책입니다.
Limit, Universe, Multiverse 등과 같은 배포 구성 요소 중 하나에 대해 이야기하는 경우 다음 키워드를 사용할 수 있습니다.
sudo add-apt-repository --remove multiverse
sudo apt update
sudo apt install whatever
sudo add-apt-repository multiverse
그렇지 않으면 전체 deb 라인을 사용해야 합니다.
repo="deb http://some.repo.com/foo bionic main"
sudo add-apt-repository --remove "$repo"
sudo apt update
sudo apt install whatever
sudo add-apt-repository "$repo"
--remove
source.list.d의 저장소와 모든 .list 파일은 source.list에서 제거 됩니다 . 그러나 저장소가 형식을 취하지 않는 한 ppa:user/somerepo
이를 다시 추가하면 source.list.d 파일이 아닌 source.list에 저장된다는 점에 유의해야 합니다.