기술적 인 측면에서 볼 때 몇 가지 크고 인기있는 시스템 정보 도구에서 이러한 변경 사항을 처리해야하는 사람은 기본적으로 다음과 같습니다.
sources.list.d /
# to add
if [[ ! -e /etc/apt/sources.list.d/some_repo.list ]];then
echo 'some repo line for apt' > /etc/apt/sources.list.d/some_repo.list
fi
# to delete
if [[ -e /etc/apt/sources.list.d/some_repo.list ]];then
rm -f /etc/apt/sources.list.d/some_repo.list
fi
아래와 동일한 확인을 수행하지 않으면 리포지토리를 주석 처리 한 경우 이러한 테스트가 잘못 될 수 있습니다. 그들이 아래와 같은 검사를하고 있다면, 하나의 파일이 아닌 많은 파일에 대해 수행되는 것을 제외하고는 똑같은 복잡성입니다. 또한 모든 가능한 파일을 확인하지 않는 한 중복 항목을 추가 할 수 있으며, 그 중 하나를 삭제할 때까지 해당 항목에 대해 불만을 제기 할 수 있습니다.
sources.list의 경우
# to add. Respect commented out lines. Bonus points for uncommenting
# line instead of adding a new line
if [[ -z $( grep -E '\s*[^#]\s*some repo line for apt' /etc/apt/sources.list ) ]];then
echo 'some repo line for apt' >> /etc/apt/sources.list
fi
# to delete. Delete whether commented out or not. Bonus for not
# deleting if commented out, thus respecting the user's wishes
sed -i '/.*some repo line for apt.*/d' /etc/apt/sources.list
Chrome 개발자는 Chrome 패키지가 존재하기 위해 생성 한 정확한 파일 이름을 사용하여 Chrome 소스가 있는지 확인하지 않았습니다. 다른 모든 경우에, 그들은 원하는 방식으로 이름이 지정된 새로운 파일을 sources.list.d에 작성합니다.
물론 어떤 소스를 가지고 있는지 알기 위해서는 다음보다 읽기 쉽고 유지하기가 쉽지 않기 때문에 그리 좋지 않습니다.
cat /etc/sources.list
따라서 이것은 기본적으로 자동화 된 업데이트를 목적으로 수행되었으며, 내가 알 수있는 한 사용자에게 제공 할 수있는 쉬운 단일 명령을 제공하기 위해 수행되었습니다. 사용자에게는 리포지토리가 추가되었는지 확인하기 위해 1 개의 파일 대신 많은 파일을 읽어야하며, apt의 경우 하나의 파일 대신 많은 파일을 읽어야한다는 의미입니다.
실제 환경에서이 작업을 제대로 수행하려면 파일 이름에 관계없이 모든 파일에 대한 검사를 지원 한 다음 수행 할 조치가 필요한지 테스트해야합니다.
그러나 제대로 수행하지 않으려면 항목이 소스에 있는지 확인하는 검사를 무시하고 파일 이름 만 확인하십시오. 나는 그것이 가장 자동화 된 것들이라고 생각하지만, 결국에는 모든 것을 확인하여 파일을 나열하고 해당 파일 중 하나가 일치하는지에 따라 행동 할 수 있었을 때 유일한 결과는 훨씬 더 복잡하게 만들었습니다.
일괄 수정
많은 서버를 실행하면 /etc/apt/sources.list.d/를 통해 반복되는 야간 작업을 스크립팅하고 항목이 이미 sources.list에 없는지 확인한 다음 야간에 작업을 수행하려고합니다. 해당 항목을 sources.list에 추가하고 sources.list.d 파일을 삭제하십시오. 그리고 이미 sources.list에있는 경우 sources.list.d 파일을 삭제하십시오.
단순성과 유지 보수 용이성을 넘어서 source.list 만 사용하는 것은 부정적인 일이 아니기 때문에 이와 같은 것을 추가하는 것은 좋지 않은 생각이 아닐 수 있습니다.
위의 주석에서 언급했듯이 inxi -r은 파일 당 활성 저장소를 깔끔하게 인쇄하지만 물론 편집하거나 변경하지 않으므로 솔루션의 절반에 불과합니다. 분포가 많으면 각각 어떻게 작동하는지 배우는 것은 고통 스럽습니다. 확실히, 그리고 무작위성은 확실히 예외가 아니라 규칙입니다.