Skocz do zawartości

łatwy update pakietów z kdialog


Rekomendowane odpowiedzi

Może się komuś przyda:

#! /usr/bin/env python3
# -*- coding: utf-8 -*-

import subprocess

o_proc = subprocess.Popen("dnf check-update",
						stdout=subprocess.PIPE,
						stderr=subprocess.STDOUT,
						universal_newlines=True,
						bufsize=1,
						shell=True,)

bStartPrint = False
for line in iter(o_proc.stdout.readline, ''):
	if line.strip() == '':
		bStartPrint = True
		continue
	if not bStartPrint: continue
	if "Zastępowanie " in line: break
	sName = line.rstrip().split()[0]
	print(sName, sName, " ", end="")
quit()

wypisuje pakiety które mogą być aktualizowane, a następnie przekazuje do kdialog:

Cytuj

dnf update $(echo "--menu Choose $(/ścieżka do powyższego skryptu pythona/dnfer.py)" | xargs kdialog)

Uruchomić w terminalu jako root i można sobie klikać do aktualizacji. Szybko i wygodnie.

image.png.c403ae03cc9aaea1f7ca0a6c31c1ec3d.png

Brakuje jedynie "zastępowania" pakietów o nowych/innych nazwach.

Pozdrawiam

Radek

Edytowane przez Radosław
literówka
Odnośnik do komentarza
Udostępnij na innych stronach

Mała uwaga. Jeśli wybierzemy `Anuluj` w okienku `kdialog` to chce aktualizować wszystko z domyślnym wyborem na nie (t/N). Wystarczy nacisnąć enter.

Pozdrawiam\Radek

Odnośnik do komentarza
Udostępnij na innych stronach

aktualizacja wielu na raz:

trochę zmieniony poprzedni skrypt:

#! /usr/bin/env python3
# -*- coding: utf-8 -*-
# dnfer.py

import subprocess

o_proc = subprocess.Popen("dnf check-update",
						  stdout=subprocess.PIPE,
						  stderr=subprocess.STDOUT,
						  universal_newlines=True,
						  bufsize=1,
						  shell=True,)

bStartPrint = False
bNextLineSkip = False
for line in iter(o_proc.stdout.readline, ''):
	if bNextLineSkip:
		bNextLineSkip = False
		continue
	if line.strip() == '':
		bStartPrint = True
		continue
	if not bStartPrint: continue
	if "Zastępowanie " in line: break
	if len(line.split()) == 1: bNextLineSkip = True
	sName = line.rstrip().split()[0]
	print(sName, sName, "off") #, end="")

quit()

i w bash-u:

echo $(kdialog --separate-output --geometry=600x600 --checklist "Zaznacz do aktualizacji" $(/scieżka/do/skryptu/dnfer.py)) >/tmp/forDnf.txt; dnf update $(cat /tmp/forDnf.txt)

Pozdrawiam

 

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...