Arch Linux에서 어떤 패키지를 업그레이드해야하는지 확인하는 방법


8

pacman -Su모든 패키지 를 업그레이드 한다는 것을 알고 있습니다. 그러나 업그레이드가 필요한 패키지 목록을 어떻게 얻을 수 있습니까?

답변:


11

상기 찾고 매뉴얼 페이지 같은

pacman -Syu

데이터베이스를 최신 버전으로 동기화 한 다음

pacman -Qu

-u,-업그레이드

Restrict or filter output to packages that are out of date on the

로컬 시스템. (패키지 버전 만 오래된 패키지를 찾는 데 사용되며 교체는 여기서 확인하지 않습니다.)이 옵션은 -Sy를 사용하여 동기화 데이터베이스를 새로 고치는 경우 가장 효과적입니다.


1
위험 : 설명서에 "never run pacman -Sy"(소스 : wiki.archlinux.org/index.php/… )이 표시되어 있습니다.
blippy

1
이 답변이 작성 될 때 @blippy 그 문서는 초기 버전은의, 존재하지 않았던 일부 monhs 나중에 . 또한, 귀하가 언급 한 내용은 4 년이 지난 후에 (Oct 23 2015) [ wiki.archlinux.org/… ) 까지 문서에 추가되지 않았습니다 . 너무 독창적이기보다는 응답을 편집하고 변경 요청의 원인으로 문서를 참조했을 것입니다. 또한 지금도 맨 페이지에는 그러한 경고가 표시되지 않습니다.
user9517

2
너무 명확히 할 - 이유 실행하지 않는이 pacman -Sy다른 패키지 데이터베이스 업데이트에서 패키지를 설치하지 않도록하는 것입니다. 예를 들어와 pacman -S <something>다른 패키지 및 종속성을 제공 할 수 있습니다 pacman -Sy && pacman -S <something>. 그러나 문서 pacman -Sy && pacman -Qu에서 OP의 질문에 대한 정답 인 것 같습니다 . pacman -Su패키지를 설치하기 전에 실행 해야합니다.
aaaaaa

1
나는 그 기사가 pacman -Sy그 자체로 나쁘지 않다는 것을 분명히하고 싶다 . 심지어 그것이 "나쁘다"또는 "위험하다"고 말하지 않습니다. 단지 부분 업그레이드가 지원되지 않으며이를 피해야한다는 것입니다. 즉, 실행에서 pacman -Sy 다음 실행 pacman -S <some package with dependencies>같은 종속성이 다른 브레이크 뭔가 가능성이있다. pacman -Sy && pacman -S man-pages최신 맨 페이지 만 얻는 것과 같은 것을 실행 하면 완벽하게 작동합니다 (맨 페이지는 종속성이 없으며 다른 패키지에서는 필요하지 않습니다).
Drew Chapin

당신은 당신이 실행 잊어 버린 때 5 일 이후의 pacman -Sy실행 pacman -S nvidia당신이 뭔가를 깰 가능성이있다.
Drew Chapin


1

@Panagiotis가 언급했듯이 checkupdates루트를 요구하거나 /var/lib/pacman데이터베이스를 망칠 필요없이이를 수행하는 방법을 제공 합니다. 최소 버전은 다음과 같습니다.

TMPPATH="${TMPDIR:-/tmp}/checkup-db-${USER}"
DBPATH="$(pacman-conf DBPath)"

mkdir -p "$TMPPATH"
ln -s "$DBPATH/local" "$TMPPATH" &>/dev/null
fakeroot -- pacman -Sy --dbpath "$TMPPATH" --logfile /dev/null &>/dev/null
pacman -Qu --dbpath "$TMPPATH" 2>/dev/null

다음과 같이 작동합니다.

  1. 데이터베이스의 임시 폴더를 만듭니다.
  2. 당신을 심볼릭 링크 /var/lib/pacman/local.
  3. pacman -Sy임시 폴더에서 실행 중 입니다.
  4. pacman -Qu임시 폴더 를 통한 쿼리
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.