특정 Arch 패키지만 업데이트

특정 Arch 패키지만 업데이트

팩맨을 사용하여 일부 특정 패키지를 어떻게 업데이트할 수 있나요?

예를 들어, py.+ 패키지(regex 구문 사용)만 다음과 같이 업데이트하려면 어떻게 해야 합니까?

$ sudo pacman -S 'py.+' 
error: target not found: py.+

작동하지 않습니다
. 도와주세요. 미리 감사드립니다.

답변1

아치 리눅스에서는일부 업그레이드는 지원되지 않습니다;항상 전체 시스템을 즉시 업그레이드해야 하며( pacman -Syu) 새 패키지가 설치되면( ). 다음 버전이 설치됩니다.pacman -Syu package
pacman -S packagepackage현재 동기화 데이터베이스에 설치된 버전이 다시 설치될 수 있습니다.
pacman -Sy다음으로 동기화 데이터베이스를 업데이트한 후 최신 버전을 설치합니다.pacman -S packagepackage 그리고 그 의존성, 후자의 이전 버전에 의존하는 다른 설치된 패키지가 손상될 수 있습니다.
위에 링크된 위키 페이지에 명시된 대로 pacman -Syuw다음도 해결책이 아닙니다.pacman -S package

즉, 이를 바탕으로아치스 위키pacman에서 패키지 목록을 인수로 제공하는 일반적인 방법은 다른 인스턴스를 사용하여 패키지 목록 을 pacman생성하는 것입니다. 예를 들어 설치된 패키지 목록에 대한 세부 정보를 이름별로 가져오려면또는 설명1은py (뿐만 아니라)로 시작하여 py관련 없는 항목을 필터링합니다.

pacman -Qsq '^py[^ ]+$' | xargs pacman -Qnq | xargs -o pacman -Si

여기서 xargs"매개변수 목록이 너무 깁니다" 오류를 방지하는 데 사용됩니다.

패키지 이름을 처리할 때 공백, 따옴표, 와일드카드 또는 기타 특이한 문자가 포함되어 있지 않다고 가정하는 것이 안전합니다. 그렇지 않으면 인용되지 않은 명령 대체는 아마도 나쁜 생각일 것입니다2. IFS패키지 이름에 나타날 수 있는 문자가 포함되어 있지 않은지 확인하십시오.

사용자 상호 작용이 필요한 명령을 실행할 때 필요한 표준 입력을 다시 열고 실행할 수 있도록 명령에 지시하는 비표준 xargs옵션 (일반적 으로 GNU 구현이 기본적으로 제공되는 Arch Linux에서 사용 가능) 이 예에서는 실제로 필요합니다).-oxargs/dev/ttypacman

또는 검색에서 반환된 패키지 수가 작을 것이라고 확신하는 경우 중첩된 명령 대체를 사용할 수 있습니다.

pacman -Si $(pacman -Qnq $(pacman -Qsq '^py[^ ]+$'))

1정규식 검색을 수행하려면 다른 유틸리티가 필요할 수 있습니다.이름예를 들어 pacsift(에서파시리스) 또는expac. pacman검색 옵션은 패키지의 "제공" 필드도 확인합니다 .

2참조언제 큰따옴표가 필요합니까?,공백이나 기타 특수 문자 때문에 쉘 스크립트가 멈추는 이유는 무엇입니까?그리고bash/POSIX 쉘에서 변수를 인용하는 것을 잊어버리는 보안 위험.

답변2

지원됩니다. --ignore package1,package2를 사용하고 모든 것을 무시할 수 있습니다.

따라서 sudo 또는 doas pacman -Syu --ignore vim,firefox,linux

관련 정보