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] (aktuální)
Ubuntu vytvořeno
Řá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     ​0 ​ 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>​
  • Poslední úprava: 2012/07/28 14:28
  • autor: Ubuntu