====== 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í ===== #! /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 ===== Příklad možného obsahu souboru výsledky.txt ===== {{.:example.png}} Výstup skriptu při volbě //flash//: 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"