저는 데비안 테스트를 기반으로 하는 Linux mint debian linux distro의 사용자입니다. 데비안 베타는 롤링 릴리스입니다. 이 배포판의 테스트 특성으로 인해 일부 패키지 업데이트에 버그가 발생합니다. 출시 날짜별로 패키지를 정렬하는 방법을 찾고 있습니다. 오류를 최소화하기 위해 설치 당일에 업데이트가 출시된 후 업데이트를 설치하고 싶습니다. 나는 패키지를 설치하기 전에 보고된 버그를 보여줌으로써 보고된 버그를 찾는 데 도움이 되는 apt-listbugs라는 좋은 프로그램에 이미 익숙합니다.
간단히 말해서:데비안 테스트 출시 날짜를 기준으로 업데이트를 정렬하는 방법은 무엇입니까?
답변1
다운로드 전용 업그레이드를 수행할 수 있다고 생각합니다.
sudo apt-get --download-only dist-upgrade
그런 다음 에서 파일의 타임스탬프를 확인하세요 /var/cache/apt/archives
. 이것은 생각하는 다운로드 타임스탬프가 아니라 서버에 있는 동일한 .deb 파일의 타임스탬프입니다.
따라서 너무 많은 새 파일을 삭제한 다음( find
의 도움을 받는 것이 좋습니다) 다운로드 없는 업그레이드를 수행하면 이전 디렉터리의 나머지 파일이 사용됩니다.
sudo apt-get --no-download dist-upgrade
ls-lR.gz
또는 서버에 있는 파일에서 업그레이드 가능한 패키지의 타임스탬프를 얻을 수 있지만 이 경우 다운로드 용량도 6~7MB가 됩니다. 다음은 순서가 지정된 목록을 가져오는 스크립트입니다.
#!/bin/bash
server_list_url="http://ftp.debian.org/debian/ls-lR.gz"
server_list="${server_list_url##*/}"
LANG=en
# get urls of upgradable packages
apt-get --print-uris --yes dist-upgrade |
awk -F \' '/(ht|f)tp/ { print $2 }' |
sed -r 's/^.*\///' >local_list
if [[ -s local_list ]]; then
wget -qN "$server_list_url"
# sort older packages by time (8th fiels is year)
zgrep -F -f local_list "$server_list" |
awk '$8 !~ /:/' |
sort -k8,8n -k6,6M -k7,7n -k9
# sort newer packages by time (8th field is hour:min)
zgrep -F -f local_list "$server_list" |
awk '$8 ~ /:/' |
sort -k6,6M -k7,7n -k8,8 -k9
else
echo "No package to upgrade" >&2
fi
답변2
귀하의 질문을 이해했는지 잘 모르겠지만 다음을 사용할 수 있습니다.wajig
비슷한 목적으로. 해당 upgrade
명령은 현재 설치된 패키지의 DEB 파일을 생성합니다(사용dpkg-repack
)가 곧 업그레이드될 예정입니다. 이는 업그레이드하기 전에 발생합니다. 명령은 다음과 같습니다.
wajig --backup=/path/to/dir upgrade
생성된 패키지는 디렉토리("/경로/대상/디렉토리) 이름은 현재 날짜와 시간입니다.