Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Xfce4 notifikace updatu nových balíčků [VYŘEŠENO]  (Přečteno 2418 krát)

Odra

  • Člen
  • **
  • Příspěvků: 461
  • Docendo discimus.
    • Zobrazit profil
Xfce4 notifikace updatu nových balíčků [VYŘEŠENO]
« kdy: 08 Září 2014, 19:58:52 »
Dobrý večer,

Jedná se spíše o dotaz na fórum debianu, nicméně poprosím o shovívavost. Jsem si jist, že v případě vyřešení bude toto vlákno prospěšné i pro zastánce jiných distribucí.

řeším problém ohledně notifikace updatů na debianu s Xfce4. Na ubuntu existuje něco jako update-check, který dokáže vypisovat hlášení o nových balících klidně do příkazového řádku. https://superuser.com/questions/476602/notification-of-available-updates-in-terminal-window

Nicméně časem byl z repozitářů debianu odstraněn příslušný balík, a jak jsem pochopil, notifikace se řeší na úrovní DE . Máme tedy balíky update-notifier(závislý na Gnome) a update-notifier-kde.

Každopádně dostačující řešení bych viděl tady https://unix.stackexchange.com/questions/105463/machine-readable-number-of-updates-alternative-to-usr-lib-update-notifier-apt
Tedy spustit jeden z příkazů s pomocí crontabu:
Kód: [Vybrat]
$ apt-get -s dist-upgrade | grep "^[[:digit:]]\+ upgraded"
82 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.

This can further be reduced to just the number like so:

$ apt-get -s dist-upgrade | grep -o "^[[:digit:]]\+"
82

Or more concisely:

$ apt-get -s dist-upgrade | grep -Po "^[[:digit:]]+ (?=upgraded)"
82

Which could be shortened to this:

$ apt-get -s dist-upgrade | grep -Po "^\d+ (?=upgraded)"
82
a výstup uložit do souboru, který by byl následně čten skrze bashrc. Bohužel mi na debianu funguje pouze příkaz:
Kód: [Vybrat]
$ apt-get -s dist-upgrade | grep -o "^[[:digit:]]\+"
Poradí mi někdo jak zprovoznit 1. příkaz, tedy dostat podrobnější výpis?
A jak rozchodit tyto příkazy s aptitude místo apt-get?
« Poslední změna: 09 Září 2014, 19:27:38 od Odra »
Audi, vide, tace.
ddg.gg , DNSCrypt

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3133
    • Zobrazit profil
    • GdH-Notes
Re:Xfce4 notifikace updatu nových balíčků
« Odpověď #1 kdy: 08 Září 2014, 21:10:43 »
Tyhle tvé příkazy jsou celé jen o filtrování výstupu příkazu
Kód: [Vybrat]
apt-get -s dist-upgradetakže když ukážeš ten svůj, můžeme případně filtraci zkorigovat, pokud tvůj apt trpí nějakou deviací.

S aptitude je to v podstatě stejné, jen má ve výpisu trochu jinou formulaci.
Kód: [Vybrat]
aptitude -s dist-upgrade | grep "^[[:digit:]]\+ packages"
Edit: překlep
« Poslední změna: 08 Září 2014, 21:46:44 od GdH »

Odra

  • Člen
  • **
  • Příspěvků: 461
  • Docendo discimus.
    • Zobrazit profil
Re:Xfce4 notifikace updatu nových balíčků
« Odpověď #2 kdy: 08 Září 2014, 21:21:17 »
Díky za reakci GdH  :)

Ano, stačí mi pouze profiltrovat balíky a zjistit co je a co není nainstalované. Jednoduše, aby mne systém informoval o nových dostupných aktualizacích.

Dneska testováno - Debian 8
Nemám co bych ukázal, vyzkoušené příkazy jsou v 1. příspěvku a nefungují - nedostanu žádný výpis z terminálu.  :(
I po zadání tvého:
Kód: [Vybrat]
aptitude -s dist-upgrade| grep "^[[:digit:]]\+ packages" terminál zůstane jednoduše viset a nedostanu žádný výsledek.  :-\

Edit: Tobě to na ubuntu funguje?
« Poslední změna: 08 Září 2014, 21:23:14 od Odra »
Audi, vide, tace.
ddg.gg , DNSCrypt

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3133
    • Zobrazit profil
    • GdH-Notes
Re:Xfce4 notifikace updatu nových balíčků
« Odpověď #3 kdy: 08 Září 2014, 21:44:30 »
Jestli to zůstane viset, máš nějaký problém s balíčkovacím systémem, takže se podívej, co ti píše ten apt-get -s dist-upgrade samotný a případně to sem zkopíruj.

Odra

  • Člen
  • **
  • Příspěvků: 461
  • Docendo discimus.
    • Zobrazit profil
Re:Xfce4 notifikace updatu nových balíčků
« Odpověď #4 kdy: 08 Září 2014, 21:55:49 »
Výstup:
Kód: [Vybrat]
odra@debian-virtualbox:~$ apt-get -s dist-upgrade
INFO: Toto je pouze simulace!
      apt-get vyžaduje pro skutečný běh rootovská oprávnění.
      Mějte také na paměti, že je vypnuto zamykání, tudíž
      tyto výsledky nemusí mít s realitou nic společného!
Čtu seznamy balíků… Hotovo
Vytváří se strom závislostí       
Čtu stavové informace… Hotovo
Propočítává se aktualizace… Hotovo
Následující balíky budou aktualizovány:
  gir1.2-gnomekeyring-1.0 libatkmm-1.6-1 libcairomm-1.0-1
  libgnome-keyring-common libgnome-keyring0 libhttp-cookies-perl
  libnm-glib-vpn1 libnm-glib4 libnm-util2 libpangomm-1.4-1 libpangox-1.0-0
  libupower-glib3 libxapian22 upower
14 aktualizováno, 0 nově instalováno, 0 k odstranění a 0 neaktualizováno.
Inst libatkmm-1.6-1 [2.22.7-2] (2.22.7-2.1 Debian:testing [amd64])
Inst gir1.2-gnomekeyring-1.0 [3.8.0-2] (3.12.0-1 Debian:testing [amd64]) []
Inst libgnome-keyring0 [3.8.0-2] (3.12.0-1 Debian:testing [amd64]) []
Inst libgnome-keyring-common [3.8.0-2] (3.12.0-1 Debian:testing [all])
Inst libnm-util2 [0.9.10.0-1.1] (0.9.10.0-2 Debian:testing [amd64])
Inst libnm-glib-vpn1 [0.9.10.0-1.1] (0.9.10.0-2 Debian:testing [amd64])
Inst libnm-glib4 [0.9.10.0-1.1] (0.9.10.0-2 Debian:testing [amd64])
Inst libcairomm-1.0-1 [1.10.0-1] (1.10.0-1.1 Debian:testing [amd64])
Inst libpangomm-1.4-1 [2.34.0-1] (2.34.0-1.1 Debian:testing [amd64])
Inst libupower-glib3 [0.99.1-2] (0.99.1-3 Debian:testing [amd64])
Inst libpangox-1.0-0 [0.0.2-4] (0.0.2-5 Debian:testing [amd64])
Inst libxapian22 [1.2.18-1] (1.2.18-1.1 Debian:testing [amd64])
Inst libhttp-cookies-perl [6.00-2] (6.01-1 Debian:testing [all])
Inst upower [0.99.1-2] (0.99.1-3 Debian:testing [amd64])
Conf libatkmm-1.6-1 (2.22.7-2.1 Debian:testing [amd64])
Conf libgnome-keyring-common (3.12.0-1 Debian:testing [all])
Conf libgnome-keyring0 (3.12.0-1 Debian:testing [amd64])
Conf gir1.2-gnomekeyring-1.0 (3.12.0-1 Debian:testing [amd64])
Conf libnm-util2 (0.9.10.0-2 Debian:testing [amd64])
Conf libnm-glib-vpn1 (0.9.10.0-2 Debian:testing [amd64])
Conf libnm-glib4 (0.9.10.0-2 Debian:testing [amd64])
Conf libcairomm-1.0-1 (1.10.0-1.1 Debian:testing [amd64])
Conf libpangomm-1.4-1 (2.34.0-1.1 Debian:testing [amd64])
Conf libupower-glib3 (0.99.1-3 Debian:testing [amd64])
Conf libpangox-1.0-0 (0.0.2-5 Debian:testing [amd64])
Conf libxapian22 (1.2.18-1.1 Debian:testing [amd64])
Conf libhttp-cookies-perl (6.01-1 Debian:testing [all])
Conf upower (0.99.1-3 Debian:testing [amd64])
odra@debian-virtualbox:~$

Nějaké aktualizace jsem tam předtím nechal viset schválně, abych vyzkoušel co to bude vyhazovat. Nicméně jsem teď zaktualizoval systém a konečně po zadání tvého:
Kód: [Vybrat]
aptitude -s dist-upgrade | grep "^[[:digit:]]\+ packages"příkaz doběhne, ale nedostanu žádný výsledek. Doufal jsem, že se objeví třeba 0. Ale to bych snad mohl upravit ve skriptu.

Díky GdH za pomoc, jen pořád nevím proč to nefunguje s neaktualizovaným systémem.
Audi, vide, tace.
ddg.gg , DNSCrypt

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3133
    • Zobrazit profil
    • GdH-Notes
Re:Xfce4 notifikace updatu nových balíčků
« Odpověď #5 kdy: 08 Září 2014, 22:06:45 »
Tak lokalizace mě nenapadla :) Tím se samozřejmě mění předmět filtrace, tudíž:
Kód: [Vybrat]
apt-get -s dist-upgrade | grep "^[[:digit:]]\+ aktualizováno"
Ale myslím, že by to mělo být stejně spolehlivé i bez toho zrádného slova, protože na začátku se jinde číslo neobjevuje:
Kód: [Vybrat]
apt-get -s dist-upgrade | grep "^[[:digit:]]\+ "
Mimochodem, já jsem doposud v Conky pro zjištění počtu aktualizací používal:
Kód: [Vybrat]
aptitude search "~U" | wc -l
Edit: doplnění
« Poslední změna: 09 Září 2014, 09:37:50 od GdH »

Odra

  • Člen
  • **
  • Příspěvků: 461
  • Docendo discimus.
    • Zobrazit profil
Re:Xfce4 notifikace updatu nových balíčků
« Odpověď #6 kdy: 09 Září 2014, 15:21:09 »
Tak lokalizace mě nenapadla :) Tím se samozřejmě mění předmět filtrace, tudíž:
Kód: [Vybrat]
apt-get -s dist-upgrade | grep "^[[:digit:]]\+ aktualizováno"
Ale myslím, že by to mělo být stejně spolehlivé i bez toho zrádného slova, protože na začátku se jinde číslo neobjevuje:
Kód: [Vybrat]
apt-get -s dist-upgrade | grep "^[[:digit:]]\+ "

Ano, bylo to lokalizací.  :D Skvělé, funguje dokonce i:
Kód: [Vybrat]
aptitude -s dist-upgrade | grep "^[[:digit:]]\+ "Díky moc za pomoc, K+

Citace
Mimochodem, já jsem doposud v Conky pro zjištění počtu aktualizací používal:
Kód: [Vybrat]
aptitude search "~U" | wc -l

Vidíš, tohle by mi možná úplně stačilo. Ale mohl bys uvést konkrétní příklad? Jak to do conky zakomponovat?
Řekněme, že mám conky:
Kód: [Vybrat]
# Use Xft?
use_xft yes
xftfont mono:size=9
xftalpha 0.8
text_buffer_size 2048

# Update interval in seconds
update_interval 1

# This is the number of times Conky will update before quitting.
# Set to zero to run forever.
total_run_times 0

# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_transparent no
own_window_type panel
own_window_hints undecorated,sticky,skip_taskbar,skip_pager

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes

# Minimum size of text area
minimum_size 1280 0

# Draw shades?
draw_shades no

# Draw outlines?
draw_outline no

# Draw borders around text
draw_borders no

# Draw borders around graphs
draw_graph_borders yes

# Stippled borders?
stippled_borders 0

# border margins
border_margin 0

# border width
border_width 2

# Default colors and also border colors
default_color white
color2 1994D1
#default_shade_color black
default_outline_color 3c3c3c
own_window_colour 3c3c3c

# Text alignment, other possible values are commented
#alignment top_left
#alignment top_right
alignment bottom_left
#alignment bottom_right

# Gap between borders of screen and text
# same thing as passing -x at command line
gap_x 5
gap_y 0

# Subtract file system buffers from used memory?
no_buffers yes

# set to yes if you want all text to be in uppercase
uppercase no

# number of cpu samples to average
# set to 1 to disable averaging
cpu_avg_samples 2

# number of net samples to average
# set to 1 to disable averaging
net_avg_samples 2

# Force UTF8? note that UTF8 support required XFT
override_utf8_locale yes

# Add spaces to keep things from moving about?  This only affects certain objects.
use_spacer right

TEXT
${offset 5}${color2}CPU1${color} ${cpu cpu1}% ${goto 80}${cpubar cpu1 9,30} ${color2}CPU2${color} ${cpu cpu2}% ${goto 188}${cpubar cpu2 9,30} ${color2}MEM${color} ${mem}/${memmax} ${membar 9,30} ${color2}SWAP${color} ${swap}/${swapmax} ${swapbar 9,30} ${color2}DOWN${color} ${downspeedf eth0} KB/s ${downspeedgraph eth0 9,30} ${color2}UP${color} ${upspeedf eth0} KB/s ${upspeedgraph eth0 9,30} ${color2}SDA1${color} ${fs_used /}/${fs_size /} ${fs_bar 9,30 /} ${if_existing /media/Linux/Downloads}${color2}SDB1${color} ${fs_used /media/Linux}/${fs_size /media/Linux} ${fs_bar 9,30 /media/Linux}${endif}
Audi, vide, tace.
ddg.gg , DNSCrypt

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3133
    • Zobrazit profil
    • GdH-Notes
Re:Xfce4 notifikace updatu nových balíčků
« Odpověď #7 kdy: 09 Září 2014, 16:50:57 »
V Conky jednoduše použiješ takovouto konstrukci:
Kód: [Vybrat]
${execi 600 aptitude search "~U" | wc -l}
$execi spouští příkaz shellu v zadaném intervalu, v tomto případě 600 sekund, tedy 10 minut a jeho výstup vypisuje do okna Conky.

Odra

  • Člen
  • **
  • Příspěvků: 461
  • Docendo discimus.
    • Zobrazit profil
Re:Xfce4 notifikace updatu nových balíčků
« Odpověď #8 kdy: 09 Září 2014, 17:27:18 »
GdH ještě jednou díky za tvůj čas a pomoc. Asi bych to už mohl uzavřít, ale pořád mi to nedá  :D , neporadil bys mi jak vytvořit jednoduchý skript, který by po zavolání cronem spustil
Kód: [Vybrat]
aptitude -s dist-upgrade | grep "^[[:digit:]]\+ " a výstup by následně uložil do souboru, který bych mohl přečíst pomocí bashrc a hodnota by se zobrazila na začátku otevření terminálu?
Audi, vide, tace.
ddg.gg , DNSCrypt

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3133
    • Zobrazit profil
    • GdH-Notes
Re:Xfce4 notifikace updatu nových balíčků
« Odpověď #9 kdy: 09 Září 2014, 17:47:47 »
Pro zápis výstupu do souboru /tmp/updates každých 10 minut:
Kód: [Vybrat]
crontab -ev otevřeném souboru na konec zapsat:
Kód: [Vybrat]
*/10 * * * * aptitude -s dist-upgrade | grep "^[[:digit:]]\+" > /tmp/updatesa uložit.

Odra

  • Člen
  • **
  • Příspěvků: 461
  • Docendo discimus.
    • Zobrazit profil
Re:Xfce4 notifikace updatu nových balíčků
« Odpověď #10 kdy: 09 Září 2014, 19:26:58 »
GdH mnohokrát díky, já už chtěl vytvářet sólo skript.
Jen doplním, že soubor lze následně číst vložením a úpravou
Kód: [Vybrat]
export PROMPT_COMMAND= do ~/.bashrc
Takže úspěšně vyřešeno  ;D
Audi, vide, tace.
ddg.gg , DNSCrypt

 


Provoz zaštiťuje spolek OpenAlt.