gdebug

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

gdebug [2012/07/28 14:28] – vytvořeno ubuntugdebug [2019/02/25 18:20] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 1: Řádek 1:
 +====== gDebug ======
 +{{.:tip.png}}  **gDebug** - skript, který za vás vyhledá informace při problémech se zvukem, flashem a instalačními programy - [[Synaptic]], [[Centrum softwaru pro Ubuntu]], [[Aktualizace programů|Automatická aktualizace]] apod.
  
 +===== Postup =====
 +==== Stručně ====
 +Skript se spouští přes //gksudo//, a výsledný soubor **výsledky.txt** se zkopíruje do fóra.
 +
 +==== Přesnější popis ====
 +Níže uvedený skript zkopírujte, uložte a spusťte podle návodu na [[Řešení problémů:Jak dodat informace do fóra]].
 +
 +Vyberte problémovou oblast dle své situace.
 +
 +{{ .:gDebug-vyber_oblast.png }}
 +
 +Nechte skript pracovat.
 +
 +{{ .:gDebug-progress.png }}
 +
 +Nakonec skript vytvoří soubor **výsledky.txt** s uloženými výpisy. Buď si ho otevřete sami, nebo vám gDebug nabídne, že ho otevře za vás.
 +
 +{{ .:gDebug-otevrit.png }}
 +
 +===== Text skriptu ke zkopírování =====
 +<code>
 +#! /bin/bash
 +# angličtina je lepší
 +# protože výstupy jsou pak dohledatelnější
 +LANG=en_US.UTF-8
 +
 +# co je možné debugovat
 +# pokud se něco doplní sem, je třeba pak doplnit i příkazy do case níže
 +# ZM je seznam potřebný do zenity
 +moznosti=( zvuk flash instalace )
 +
 +for i in $(seq 0 $((${#moznosti[@]} - 1))); do
 + ZM="$ZM FALSE ${moznosti[$i]}"
 +done
 +
 +# nechat vybrat
 +while :; do
 + CoDebugovat="`zenity --title 'gDebug' --list --radiolist --text 'Problém s čím?' --column 'Vyber jednu' --column 'oblast' $ZM`"
 + # zmáčkl cancel?
 + [[ $? -eq 1 ]] && exit 1
 + # zadal něco?
 + [[ -n $CoDebugovat ]] && break
 + zenity --error --text "Vyber jednu problémovou oblast!"
 +done
 +
 +# zde je možné doplňovat příkazy pro jednotlivé oblasti
 +# příkaz je potřeba zadat tak, aby jeho provádění netrvalo
 +# déle než cca 45 sekund (viz $CasLimitPrikaz)
 +case $CoDebugovat in
 + zvuk)
 + prikazy=( "aplay -l" "grep Codec /proc/asound/card0/codec#*"
 + "lspci -v | awk '/Audio/,/Kernel\ modules/'" "lsof /dev/dsp* /dev/snd/*"
 + "amixer info" "amixer scontents | grep -E 'mixer|\['" "uname -a"
 + "df -Th" "cat /etc/lsb-release" )
 + ;;
 + flash)
 + prikazy=( "dpkg -l | egrep 'flash|swfdec|gnash'"
 + "ls -al /home/*/.macromedia"  "find /usr -name libflashplayer.so -ls"
 + "uname -a" "df -Th" "cat /etc/lsb-release" )
 + ;;
 + instalace)
 + prikazy=( "dpkg --configure -a" "dpkg -l | grep -Ev '^ii|^rc'"
 + "tail -20 /var/log/dpkg.log"
 + "find /etc/apt -type f -name '*.list' -exec grep -H '^deb ' '{}' \;"
 + "ls -l /var/backups/{apt,dpkg}*"
 + "ls -l /var/lib/dpkg" "lsof /var/lib/dpkg/*"
 + "df -Th" "cat /etc/lsb-release" )
 + ;;
 + *)
 + # TODO: něco ukecanějšího by nebylo?
 + exit 1
 +esac
 +
 +TempSoubor=`mktemp`
 +# jak dlouho dát max. čas pro provedení příkazu
 +# nesmí být moc, uživatel je netrpělivý
 +# sekundy = asi CasLimitPrikaz/5
 +CasLimitPrikaz=250
 +
 +# adresář, z kterého spouštíme skript
 +AktAdresar=$(cd $(dirname "$0");pwd)
 +# existuje AktAdresar?
 +# pokud ne, předpokládej $HOME nebo /tmp
 +[[ -z $AktAdresar ]] && AktAdresar="$HOME"
 +[[ -z $AktAdresar ]] && AktAdresar=/tmp
 +
 +PocetPrikazu=$((${#prikazy[@]}))
 +
 +exec 3> >(zenity --progress --title="gDebug" --percentage=0 --auto-close --width=300 || echo cancel > $TempSoubor)
 +# výstup do souboru výsledky.txt
 +exec &> "${AktAdresar}/výsledky.txt"
 +
 +for (( i=0; i<$PocetPrikazu; i++ )); do
 + prikaz=${prikazy[$i]}
 + echo "# $(($i + 1))/${PocetPrikazu} - ${prikaz}" >&3
 + echo
 + echo $prikaz
 + echo ---------------------------
 + eval "${prikaz} &"
 + ChildPID=$!
 +
 + # příkaz se spouští na pozadí
 + # když uživatel klikne Cancel, nebo se příkaz provádí dlouho
 + # je nemilosrdně zabit
 + for ((j=0;j<=$CasLimitPrikaz;j++)); do
 + kill -0 $ChildPID &> /dev/null || break
 + [[ -s $TempSoubor ]] && exit 1
 + echo $(((($i * $CasLimitPrikaz + $j) * 100) / ($PocetPrikazu * $CasLimitPrikaz))) >&3
 + sleep 0.2
 + done
 + kill -0 $ChildPID &> /dev/null && { echo "zabíjím $ChildPID - $prikaz"; kill $ChildPID; }
 + echo $((($i + 1) * 100 / $PocetPrikazu)) >&3
 +done
 +
 +if zenity --question --title="gDebug" --text="Hotovo.\n\nByl vytvořen soubor $AktAdresar/výsledky.txt.\n\nChceš ho rovnou otevřít?"; then
 + editor="gnome-text-editor"
 + which "$editor" &> /dev/null || editor=gedit
 + $editor "$AktAdresar/výsledky.txt" &
 +fi
 +
 +exit 0
 +</code>
 +===== Příklad možného obsahu souboru výsledky.txt =====
 +{{.:example.png}}  Výstup skriptu při volbě //flash//:
 +<code>
 +dpkg --configure -a
 +---------------------------
 +dpkg: error processing adobe-flashplugin (--remove):
 + Package is in a very bad inconsistent state - you should
 + reinstall it before attempting a removal.
 +Errors were encountered while processing:
 + adobe-flashplugin
 +
 +dpkg -l | grep -Ev '^ii|^rc'
 +---------------------------
 +Desired=Unknown/Install/Remove/Purge/Hold
 +| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
 +|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
 +||/ Name                                  Version                                    Description
 ++++-=====================================-==========================================-============================================
 +rFR adobe-flashplugin                          10.0.22.87-1                            Adobe Flash Player plugin version 10
 +
 +tail -20 /var/log/dpkg.log
 +---------------------------
 +2010-02-04 16:27:33 startup packages remove
 +2010-02-04 16:27:33 status installed libreadline5 5.2-6
 +2010-02-04 16:27:33 remove libreadline5 5.2-6 5.2-6
 +2010-02-04 16:27:33 status half-configured libreadline5 5.2-6
 +2010-02-04 16:27:33 status half-installed libreadline5 5.2-6
 +2010-02-04 16:27:33 status triggers-pending libc-bin 2.10.1-0ubuntu16
 +2010-02-04 16:27:33 status config-files libreadline5 5.2-6
 +2010-02-04 16:27:33 status config-files libreadline5 5.2-6
 +2010-02-04 16:27:33 trigproc libc-bin 2.10.1-0ubuntu16 2.10.1-0ubuntu16
 +2010-02-04 16:27:33 status half-configured libc-bin 2.10.1-0ubuntu16
 +2010-02-04 16:27:33 status installed libc-bin 2.10.1-0ubuntu16
 +
 +find /etc/apt -type f -name '*.list' -exec grep '^deb ' '{}' \;
 +---------------------------
 +deb http://ppa.launchpad.net/jonoomph/openshot-edge/ubuntu karmic main
 +deb http://dl.google.com/linux/deb/ stable main
 +deb http://deb.opera.com/opera/ stable non-free
 +deb http://cz.archive.ubuntu.com/ubuntu/ karmic main restricted
 +deb http://cz.archive.ubuntu.com/ubuntu/ karmic-updates main restricted
 +deb http://cz.archive.ubuntu.com/ubuntu/ karmic universe
 +deb http://cz.archive.ubuntu.com/ubuntu/ karmic-updates universe
 +deb http://cz.archive.ubuntu.com/ubuntu/ karmic multiverse
 +deb http://cz.archive.ubuntu.com/ubuntu/ karmic-updates multiverse
 +deb http://security.ubuntu.com/ubuntu karmic-security main restricted
 +deb http://security.ubuntu.com/ubuntu karmic-security universe
 +deb http://security.ubuntu.com/ubuntu karmic-security multiverse
 +deb http://ppa.launchpad.net/xsisqox/ppa/ubuntu karmic main
 +
 +ls -l /var/backups/{apt,dpkg}*
 +---------------------------
 +-rw-r--r-- 1 root root 2271643 2009-10-30 20:27 /var/backups/aptitude.pkgstates.0
 +-rw-r--r-- 1 root root 1254290 2010-02-01 00:37 /var/backups/dpkg.status.0
 +-rw-r--r-- 1 root root  346435 2010-01-30 23:57 /var/backups/dpkg.status.1.gz
 +-rw-r--r-- 1 root root  345971 2010-01-29 19:50 /var/backups/dpkg.status.2.gz
 +-rw-r--r-- 1 root root  345671 2010-01-28 21:53 /var/backups/dpkg.status.3.gz
 +-rw-r--r-- 1 root root  345458 2010-01-26 23:56 /var/backups/dpkg.status.4.gz
 +-rw-r--r-- 1 root root  345052 2010-01-25 20:32 /var/backups/dpkg.status.5.gz
 +-rw-r--r-- 1 root root  344752 2010-01-24 22:13 /var/backups/dpkg.status.6.gz
 +
 +ls -l /var/lib/dpkg
 +---------------------------
 +total 5164
 +drwxr-xr-x 2 root root    4096 2010-02-02 10:58 alternatives
 +-rw-r--r-- 1 root root 1250240 2010-02-04 23:57 available
 +-rw-r--r-- 1 root root 1250240 2010-02-04 23:55 available-old
 +-rw-r--r-- 1 root root       8 2009-10-30 20:22 cmethopt
 +-rw-r--r-- 1 root root     338 2010-01-26 20:27 diversions
 +-rw-r--r-- 1 root root     186 2009-11-20 23:53 diversions-old
 +drwxr-xr-x 2 root root  225280 2010-02-04 16:27 info
 +-rw-r----- 1 root root       0 2010-02-04 23:57 lock
 +drwxr-xr-x 2 root root    4096 2009-09-20 10:23 parts
 +-rw-r--r-- 1 root root     112 2010-01-14 22:18 statoverride
 +-rw-r--r-- 1 root root     152 2010-01-14 22:18 statoverride-old
 +-rw-r--r-- 1 root root 1254290 2010-02-04 23:57 status
 +-rw-r--r-- 1 root root 1254290 2010-02-04 23:55 status-old
 +drwxr-xr-x 2 root root    4096 2010-02-04 16:27 triggers
 +drwxr-xr-x 2 root root    4096 2010-02-04 23:57 updates
 +
 +lsof /var/lib/dpkg/alternatives /var/lib/dpkg/available /var/lib/dpkg/available-old /var/lib/dpkg/cmethopt /var/lib/dpkg/diversions /var/lib/dpkg/diversions-old /var/lib/dpkg/info /var/lib/dpkg/lock /var/lib/dpkg/parts /var/lib/dpkg/statoverride /var/lib/dpkg/statoverride-old /var/lib/dpkg/status /var/lib/dpkg/status-old /var/lib/dpkg/triggers /var/lib/dpkg/updates
 +---------------------------
 +
 +df -Th
 +---------------------------
 +Filesystem    Type    Size  Used Avail Use% Mounted on
 +/dev/sda8     ext4     15G  3.7G   10G  28% /
 +udev         tmpfs    497M  312K  497M   1% /dev
 +none         tmpfs    497M  136K  497M   1% /dev/shm
 +none         tmpfs    497M   76K  497M   1% /var/run
 +none         tmpfs    497M  8.0K  497M   1% /var/lock
 +none         tmpfs    497M      497M   0% /lib/init/rw
 +/dev/sdb1     ext3     78G   39G   36G  53% /home
 +
 +cat /etc/lsb-release
 +---------------------------
 +DISTRIB_ID=Ubuntu
 +DISTRIB_RELEASE=9.10
 +DISTRIB_CODENAME=karmic
 +DISTRIB_DESCRIPTION="Ubuntu 9.10"
 +</code>