Autorzy środowiska GNOME przepisali na nowo GDM, myślę sobie fajnie, czemu by nie? (poprzedni gdm w Achu był w wersji 2.20.10-2) Po aktualizacji okazało się, że GDM wygląda okropnie i nie posiada konfiguratora. Poszukałem w sieci rozwiązania i znalazłem namiastkę. (Może to przez te zero w numerze wersji? Mam nadzieję..)
1. Konfiguracja wyglądu nowego GDM:
Za pomocą tego polecenia można skonfigurować między innymi tapete i motyw gtk: gksudo -u gdm dbus-launch gnome-appearance-properties. (Nie musisz dalej czytać). Tymczasowe rozwiązanie to user ALL=(gdm:gdm) /usr/bin/dbus-launch gnome-appearance-properties w konfiguracji sudo (chociaż sam nie wiem czy to aby pożądane). Kompleksowe tymczasowe rozwiązanie to skrypt np. basha nazwany gdm-setup z tym poleceniem, można użyć na ten skrypt sudo albo su do podbijania uprawnień do roota aby ten mógł swobodnie obniżyć uprawnienia do użytkownika gdm (zablokowane logowanie i shell nologin!). To jednak nie załatwia tego: cannot open display: :0.0. Więc do skryptu trzeba jeszcze dorzucić xhost przykładowo przed linię uruchamiającą konfigurator: xhost +localhost i po xhost -localhost (dodatkową opcje jak np. autologowanie ustawia się z poziomu gconf-editor, użyj fantazji). Mamy namiastkę konfiguratora, mam nadzieję że szybko się uwiną z tworzeniem gdm-setup i będzie miało opcje ustawiania motywów napisanych dla starego gdm.
2. Zaktualizowanie do starej wersji:
Możesz zbudować paczkę z aur lub pobrać binarny pakiet z repozytorium archrepo.net. Pakiet nosi nazwę: gdm-old.
Słowem wstępu: Grub2 to nowszy Grub, boot loader czyli coś co siedzi w MBR i ładuje wybrany przez nas system, kropka.
Nowa wersja programu ma znacznie większe możliwości konfiguracyjne choć niektórych opcji z poprzedniej wersji mu brakuje, jest modularny i potrafi lepiej używać karty wideo. Poprzednia wersja z przystawką jaką był gfx stanowczo ustępuje tej z obecną gfxmenu (w linkach zrzutki). Do kompletu dobrze pasuje kernel z fbcondecor np. kernel26-ice i wystrój boot splasha o nazwie arch-black, gdy użyjesz mojego wystroju gruba - będzie w sam raz.. Niestety nie wiem jak zrobić screenshot z gruba więc opiszę jak to wygląda, a jest to skrzyżowanie themesu ubuntu tego z kułeczkiem po lewej (screeny w linku do gfxmenu), a tłem verbose, logo i ikonką z arch-black. Pobrać można tutaj. Do rzeczy.
Po instalacji paczek grub2-gfxmenu i grub2-gfxmenu-overlay z aur lub archfox:
[archfox]
Server = http://hateanthem.dreamhosters.com/arch/i686
#lub
[archfox]
Server = http://hateanthem.dreamhosters.com/arch/x86_64
Przyszedł czas na konfigurację, co trzeba wiedzieć?
- Zmieniła się nazwa pliku konfiguracyjnego z menu.lst na grub.cfg.
- Zmieniły się komendy gruba.
- Od teraz (hd0,0) jest (hd0,1)
Tak było w starym grubie:
title Arch Linux
root (hd0,0)
kernel /boot/vmlinuz26 root=/dev/sda1 ro
initrd /boot/kernel26.img
A tak jest w nowym:
menuentry "Arch Linux" --class "arch" {
set root=(hd0,1)
linux /boot/vmlinuz26 root=/dev/sda1 ro
initrd /boot/kernel26.img
}
Opcja class wczytuje ikonki w formacie png z /boot/grub/themes/icons/.
Instalacja gruba (robisz na własne ryzyko, zabezpiecz się w livecd) wygląda tak:
grub-install /dev/sda
Wystrój graficzny..
# Jako ciekawostka, hiddenmenu dla grub2, odkomentuj
# linię zakomentowane podwójnym komentarzem..
##echo -n "Przycisnij [ESC] aby przejsc do menu... "
##if sleep --verbose --interruptible 1; then
## set menuviewer="terminal"
## set timeout=0
##else
# gfxmode = rozdzielczości themesu, inaczej będzie dziwnie
# wyglądać gdy się nie zmieści na ekranie bądź będzie mikrych
# wymiarów.. 640x480 lub 800x600 to kompromis między
# wydajnością, a pięknem niekwadratowej grafiki..
set gfxmode=640x480
insmod biosdisk
insmod pc
insmod font
insmod vbe
insmod gfxterm
insmod videotest
insmod tga
insmod png
insmod gfxmenu
set menuviewer="gfxmenu"
set theme="/boot/grub/themes/arch-black/theme.txt"
set timeout=15
##fi
# [..] #
Gotowe, restart i ku naszym oczom widnieje piękny bootloader (mam nadzieję). ;)
First public released aurpac. This is Light'n'fast manager aur and pacman repository. Now pacman is used only for search and remove packages, but this is verion 0.1. ;)
Features in this verion: coloring outputs, very fast searching tool looks like pacman (-Ss and -Ssp), installing (with deps) from aur (-S), upgrading (-Su), printing information about package (-Si), all from pacman -R*.
Pierwsze publiczne wydanie aurpac. Jest to lekki i szybki menadżer repozytoriów aur i pacmana. Obecnie pacman jest używany tylko do wyszukiwania i usuwania paczek, ale to dopiero wersja 0.1.
Nowości w tej wersji: koloruje output, bardzo szybkie narzędzie do wyszukiwania w aur wyglądające jak pacman (-Ss i -Ssp), instalowanie (z zaleźnościami) z aur (-S), aktualizowanie (-Su), wyświetlanie informacji o pakiecie (-Si), wszystko z pacman -R*.
Get source/żródła from aur site.
Narzędzie to służy do wyświetlania w menu "Miejsca" (en: "Places", możesz nazwać inaczej), podstawowe pozycje jak "Domowy" (en: "Home"), czy wyszukiwanie plików, itp. oraz dodatkowe podmenu: "Zakładki" (en: "Bookmarks") oraz "Ostatnio używane" (en: "Recently used"). Te dwa podmenu są generowane automatycznie na podstawie mechanizmów większości przeglądarek plików opartych na gtk, takich jak np: nautilus, thunar, pcmanfs, itp. oraz dolphin (KDE4, nie testowane). Generowane są przy pomocy regexpów tak by menu wyświetlało się jak najszybciej jest to możliwe (do tego perla użyłem).
Plik konfiguracyjny jest bardzo prosty, w części "opcje podstawowe" można wybrać polecenia, które będą wywoływane podczas konkretnych akcji, np: podczas uruchamiania "Domowy" standardowo zostanie wywołany "nautilus --no-desktop", można zmienić to polecenie np. na "pcmanfs", itd. To samo tyczy się innych opcji.
Druga część pliku to "opcje zaawansowane", tutaj jest miejsce na dopisanie przy użyciu echo lub wbudowanych funkcji, dodatkowych opcji, lub ich modyfikacja. Opcja: "print_item <name> <cmd> [path]" służy po prostu do wyświetlania pozycji, mogą one być dowolnymi programami, oczywiście. "Path" ("/ścieżka/do/") nie jest wymagany, a "name" służy do określania nazwy (proszę się nie martwić o te $"śmieszne" parametry, one po prostu pobierają ich polskie odpowiedniki przy pomocy gettext, jest to zwyczajny tekst). Opcja "seperator" służy tylko i wyłącznie do oddzielania poziomymi krechami, pozycji. "bookmarks_menu" i "recentlyused_menu" generują automatycznie zawartość dla wcześniej wspomnianych podmenu.
Ta malutka aplikacja dostępna jest w AUR, zapraszam do testów.
O takim np. kodem wyświtlisz info:
curl 'http://aur.archlinux.org/rpc.php?type=info&arg='"flv2x264" \
2>/dev/null \
|sed 's/{\|}\|\[\|\]//g
s/^\("type":".*"\),"results":\(.*\)/,\1,\2/g
s/,"/'"\n"'/g
s/":/=/g
s/\\\//\//g'
A takim wyszukasz pakiety:
curl 'http://aur.archlinux.org/rpc.php?type=search&arg='"pacman" \
2>/dev/null \
|sed 's/{\|}\|\[\|\]//g
s/^\("type":".*"\),"results":\(.*\)/,\1,\2/g
s/,"/'"\n"'/g
s/":/=/g
s/\\\//\//g' \
|sed '/Name=/!d
s/Name="\(.*\)"/\1/g'
Oczywiście to nie jest może uniwersalny interpretator jsona pod bash ale z zadaniem sobie radzi, mój klient aura jest o to oparty ale jest też wiecznie niedokończony, więc na razie go nie udostępnię.. Jest jakiś inny interpretator tego ohydnego jsona dla basha?
Nowości w alsa-tools-emu10k1:
- lshwd zamieniony regexpem: Od teraz lshwd nie będzie wymagany jako zależność, tym samym proszę o informację na temat niewykrywanego sprzętu, info podczas uruchamiania daemona. Uwaga dla mało rozgarniętych użytkowników: "INIT_NAME=(your)" ustawia się w '/etc/conf.d/alsa-emu10k1d'
- Zautomatyzowany pierwszy raz: Jeżeli startujesz z deamonem "alsa" od teraz masz automatyczne przejście na "alsa-emu10k1d".
Nowości w alsa-tools-emu10k1-gui to ikonka w menu twojego DE. ;)
Oba zostały zaktualizowane z wersji 1.0.15 do 1.0.16 (wersja odpowiadająca wersji w kernelu).
31 sie, 08:37 - Aktualizacja: Release 1.2 usuwa problem zapętlania się przy stopowaniu, radzę szybką aktualizację. (Jakimś cudem w skrypcie napisałem '$0 stop' zamiast 'ld10k1d stop'.)
Nie wiem jak komu ale mi dziś oficjalne repo za bardzo zwolniło, co prawda jakiś czas transfery były w miare ok ale.. Do rzeczy, jeżeli jeszcze nie wiesz jak wybiera się alternatywne repozytoria w Arch Linuksie, tu masz krótki tutorial.
Czynność pierwsza. Użyj rankmirror by znaleźć najszybsze repozytoria.. Przykład:
rankmirrors -t -n 15 -v /etc/pacman.d/mirrorlist
Czynność druga. Porównaj wyniki skryptu mirrorcheck by upewnić się że twoje repo będzie w miarę aktualne.
Czynność trzecia. Dopisz nowy mirror do pliku /etc/pacman.conf, aby twoje repo zawsze miało pierwszeństwo wstaw między [nazwa_repo], a Include=/etc/pacman.d/mirrorlist taki wpis: Server=[tutaj twój url]. Alternatywnie zamiast Server możesz wstawić Include ze ścieżką do twojego własnego pliku z listą mirrorów.
Gotowe, powodzenia.
Każdy pewnie zna program deamon-tools z systemu Windows ale nie każdy wie jak takie coś zrobić pod Linuksem. Montowanie z loopem ma jedną dużą wadę - nie umie montować innych obrazów CD niż jeden słuszny ISO. Niestety w naszych czasach istnieje wiele nie powiem że bez sensownych (bo przecież po co korzystać z ISO jak można zrobić coś innego) ale innych formatów których nie da się zamontować w loopie. Z pomocą przychodzi cdemu. Aby zainstalować program potrzebne są 4 pakiety: "vhba", "libmirage", "cdemud" i "cdemu-client". (W dystrybucji Arch Linux znajdziesz je w AUR..) Po zainstalowaniu trzeba dodać daemon "cdemud" do initu (za hal'em) i uruchomić. Następnie trzeba dodać następujący wpis w "/etc/fstab":
/dev/scd0 /media/cdemu auto ro,users,noauto,nosuid,unhide,iocharset=iso8859-2 0 0
Gotowe.
Polecenie "cdemu" służy do ładowania obrazów z poziomu cli. Można teraz spokojnie dodać do menu nautilusa bądź thunara akcję do montowania obrazów CD. Przedstawie tu tylko wpisy dla thanara ponieważ to jego używam obecnie..
Edytuj akcję → Podstawowe
- Nazwa:
Zamontuj..
- Opis:
- Zamontuj obraz płyty..
- Polecenie:
cdemu load 0 %f
- Ikona:
- Ikony urządzeń → cdrom_mount
Edytuj akcję → Warunki pokazania
- Wzorzec pliku:
*.b5t;*.b6t;*.ccd;*.cdi;*.cue;*.iso;*.img;*.mds;*.xmd;*.nrg;*.toc;*.bin
- Dostępne, gdy zaznaczenie zawiera:
- Inne pliki
Program który przebuduje każdą paczkę dostępną w abs wraz z kompilacją lub ściągnięciem za pomocą pacmana zależności. Ma możliwość podania wersji którą chcesz zainstalować lub pobrania najnowszego revision pakietów cvs/svn/itp. Standardowo pakiety kompilują się w /tmp/repack-build ale możesz to zmienić za pomocą zmiennej builddir na samym początku. Przykład instalacji przy użyciu repackage:
$ pacman -Q bar
bar 1.4-1
$ repackage -S bar=1.3.1
==> Entering fakeroot environment
==> Making package: bar 1.3.1-0 (Wt, 25 wrz 2007, 12:33:12 CEST)
..
Kod programu:
#!/bin/bash
#
builddir="/tmp/repack-build"
bin_versionpkg="/usr/bin/versionpkg"
msg() {
echo -e "\\033[1;32m*** \\033[1;37m$1\\033[0;37m"
}
build() {
unset pkgdir fpkgdir revision_number
if [ "`echo $2|grep =|wc -l`" -gt "0" ]; then
pkgname="`echo $2|cut -d= -f1`"
pkgver="`echo $2|cut -d= -f2`"
if [ ! -x "$bin_versionpkg" -a "$pkgver" = "get" ]; then
unset pkgver
msg "Package \"versionpkg\" not installed!"
fi
else
pkgname="$2"
unset pkgver
fi
if [ ! -d "$builddir" ]; then
mkdir "$builddir"
fi
cd "$builddir"
fpkgdir="`find /var/abs -type d -name $pkgname`"
ffind="0"
for i in $fpkgdir; do
if [ -r "$i/PKGBUILD" ]; then
let ffind++
sel_pkgdir[$ffind]="$i"
echo "${ffind}. $i"
fi
done
if [ "$ffind" -gt "1" ]; then
echo -n "Please, select your option [auto-select \"1\" - 15s]: "
typeset -i sel_no
read -n 1 -t 15 -r sel_no; echo
if [ -n "$sel_no" ] && [ "$sel_no" -gt "0" ] && \
[ "$ffind" -ge "$sel_no" ]; then
# ?????????????? please, repair this
[ -n "$sel_no" ] && \
pkgdir="${sel_pkgdir[$sel_no]}" || \
pkgdir="${sel_pkgdir[1]}"
else
pkgdir="${sel_pkgdir[1]}"
fi
else
pkgdir="${sel_pkgdir[1]}"
fi
unset fpkgdir ffind sel_pkgdir sel_no
if [ -n "$pkgdir" ]; then
cp -a $pkgdir $builddir/$pkgname
cd $pkgname
if [ -n "$pkgver" ] && [ "$pkgver" = "get" ]; then
msg "Retrieving latest revision.."
revision_number="$($bin_versionpkg -m 2> /dev/null)"
if [ -n "$revision_number" ]; then
msg "Newer revision detected: $revision_number"
pkgver="$revision_number"
else
msg "Oups.. This isn't revision repo and version will not be changed.."
unset pkgver
fi
fi
if [ -n "$pkgver" ]; then
eval "sed -i -e's#\(pkgver=\).*#\1$pkgver#g' PKGBUILD"
if [ -z "$revision_number" ]; then
sed -i -e's#\(pkgrel=\).*#\10#g' PKGBUILD
sed -i -e's#\(md5sums=\)('.*')#\1#g' PKGBUILD
fi
fi
if [ "`grep arch= PKGBUILD|wc -l`" -lt "1" ]; then
echo "arch=('i686')" >> PKGBUILD
fi
makepkg -$1 || pkgnotbuild=($pkgnotbuild $pkgname)
else
pkgnotfound=($pkgnotfound $pkgname)
fi
}
absup() {
if [ "`sudo -l|grep "/usr/bin/abs"|wc -l`" -gt "0" ]; then
sudo abs
else
msg "Please, give password for root to upgrade abs PKGBUILD tree.."
su -c abs
fi
msg "Upgrade PKGBUILD tree is finished.."
}
### BEGIN ###
if [ "${#@}" = "0" -o "$1" = "--help" -o "$1" = "-h" -o -z "$1" ]; then
cat <<EOF
repackage version 0.1.99.1 2007 | GPL2 | 3ED <kas1987@o2.pl>
Usage:
repackage [-S|-Sd|-So|-Sdo|-Sod] <package-name[=<ver>|=get]> ..
repackage [-B|-Bd|-Bo|-Bdo|-Bod] <package-name[=<ver>|=get]> ..
repackage [-c|-cc|-y|-h]
Options:
-S Depends install with pacman
d not clean cache
o package build only
-B Depends build from source
d not clean cache
o package build only
-c clean cache
-cc delete all files in tmp
-y refresh abs tree
-h show help options
<ver> - put your version of this program
get - versionpkg method for cvs/svn/ltd
EOF
exit 0
elif [ "$1" = "-S" ]; then
buildopts="iSscf"
elif [ "$1" = "-Sd" ]; then
buildopts="iSsf"
elif [ "$1" = "-So" ]; then
buildopts="scf"
elif [ "$1" = "-Sdo" -o "$1" = "-Sod" ]; then
buildopts="sf"
elif [ "$1" = "-B" ]; then
buildopts="iSbcf"
elif [ "$1" = "-Bd" ]; then
buildopts="iSbf"
elif [ "$1" = "-Bo" ]; then
buildopts="bcf"
elif [ "$1" = "-Bdo" -o "$1" = "-Bod" ]; then
buildopts="bf"
elif [ "$1" = "-c" ]; then
if [ -d "$builddir" ]; then
cd $builddir
for i in *; do
if [ -d "$i" ]; then
cd $i
rm -rf src/ pkg/
cd ..
fi
done
fi
msg "Complite.."
exit 0
elif [ "$1" = "-cc" ]; then
if [ -d "$builddir" ]; then
rm -rf $builddir
fi
msg "Complite.."
exit 0
elif [ "$1" = "-y" ]; then
absup
exit 0
fi
for i in $@; do
if [ "`echo $i|cut -c1`" != "-" ]; then
build "$buildopts" "$i"
fi
done
[ -n "$pkgnotbuild" ] && msg "This package is not build: ${pkgnotbuild[*]}"
[ -n "$pkgnotfound" ] && msg "This package is not found: ${pkgnotfound[*]}"
Ostatnia aktualizacja: 14 listopad 2007
Włącza lub wyłącza numlock.
Opcja "1", "true" lub "True" aktywuje.
It enables or disables the numlock.
Options "1", "true" or "True" for enable.
Plik (File): "/etc/gdm/Init/Default" - na samym dole (on bottom):
NUMLOCK="true"
NUMLOCK_BIN="/usr/bin/numlockx"
if [ -f "$NUMLOCK_BIN" -a -n "$NUMLOCK" ] && \
[ "$NUMLOCK" = "1" -o "$NUMLOCK" = "true" -o $NUMLOCK" = "True" ]
then
$NUMLOCK_BIN on
fi
unset NUMLOCK NUMLOCK_BIN
Aktualizacja: 06 listopad 2007
Skrypt ten wykorzystuje kodeki x264, mp3 oraz kontener avi. Tworzy małe pliczki wideo o dobrej jakości. Posiada opcje do ustawiania jakości wideo i dzwięku. Jest on prostym w obsłudze skryptem bash, wymaga on mplayera, x264, lame. Po uruchomieniu zobaczysz:
flv2x264 version 0.1 2007 | 3ED <kas1987@o2.pl>
Usage:
flv2x264 [-v <v-br>][-a <a-br>][-o <output>] -i <input>
flv2x264 -h (or) -V
Options:
-v video bitrate [default=280]
-a audio bitrate [default=64]
-o output avi file
-i input flv file
-h show help options
-V more info about this program
Tworzy on pliczki których rozmiar jest zbliżony do flv (+/- 1MB na 20MB plik flv). Można go również wykorzystać niestandardowo do plików avi, wmv, itp. Dzięki opcji -v ustawisz ilość ramek na sekundę wideo, a dzięki opcji -a ustawisz ilość kb na sekundę dźwięku. Opcja -o nie jest wymagana ale możesz jej użyć by zapisać pod inną nazwą plik wynikowy - w przeciwnym wypadku zapisze się on pod nazwą oryginalną + "2x264.avi" czyli np. "gumisie.flv2x264.avi". Opcją -i służy do określenia pliku do konwertowania czyli np. "gumisie.flv", jest wymagana. Skrypt ten jest objęty licencją GPL2. Można go pobrać stąd: flv2x264.
x264 to open-sourcowy format jak się okazuje bardzo dobry. Wychodzi bardzo mały plik w dobrej jakości. Postanowiłem napisać sobie skrypt do konwertowania właśnie do tego formatu plików FLV. Dlaczego bez start.sh, getopts nie wykonuje się to nie wiem. W razie czego piszcie mi tu komentarze.. ;) A oto skrypt flv2x264.
Tak powinien wyglądać output po wpisaniu "flv2x264 -h":
flv2x264 version 0.1rc1 2007 | 3ED <kas1987@o2.pl>
Usage:
flv2x264 [-v <v-br>][-a <a-br>][-o <output>] -i <input>
flv2x264 [-h]
Options:
-v video biterate [default=300]
-a audio biterate [default=64]
-o output avi file
-i input flv file
--20070701--EDIT:
PKGBUILD dla Arch Linux.. Właśnie chodzi o to z tym starterem że wykorzystując PATH systemowy flv2x264.sh nie chciał mi wykonać getopts. Ocb to nie wiem i nie miałem czasu sprawdzić. Jak coś będę wiedział to zaktualizuje pkgbuild i wpis na blogu. Zachęcam do używania i zgłaszania ewentualnych błędów w komentarzach albo na jabberze..
--20070701--EDIT:
Wersja rc2: To ze starterem już nie aktualne.. Dla mnie działa bez niego. Drobne poprawki w kodzie..
Wielu ma z tym problem więc postanowiłem napisać co i jak.
Na początek należy zainstalować sterowniki i sane: pacman -S hplip sane xsane, a później.. W zasadzie wystarczy samo dopisanie hpaio do /etc/sane.d/dll.conf (w tym pliku każda nie-za-komentowana linijka jest uważana za nazwę sterownika do załadowania). Można dodać alias dla skrócenia nazwy w xsane: alias [nasza_nazwa_bez_spacji] [całe_uri_skanera] - (bez nawiasów) do pliku /etc/sane.d/dll.aliases. Poleceniem: hp-info|grep "scan-uri", wydrukujesz URI (to te po prawej). To wszystko, teraz można spokojnie uruchomić xsane.
UWAGA: Gdyby okazało się że twój skaner nadal nie działa, zajrzyj tutaj: /usr/share/hplip/hpaio.desc.
Akcja: „25 - 27 : Bojkot : Następny Weekend Bez Kina”. W państwie Prawym i Sprawiedliwym każdy polak jest przestępcą oprócz tych co mają dużo pieniędzy, zaprotestujmy. Jeżeli nie uważasz siebie za przestępce - przekaż link do akcji twojemu znajomemu, koledze, przyjacielowi..
Ile pakiet zajmuje miejsca na dysku po zainstalowaniu? W plikach desc bazy pacmana jest ale postanowiłem napisać coś co mi wyliczy dokładniej. Proszę oto skrypt - prezent. Skrypt w publicznej domenie bo nie zależy mi na tym kto co z nim zrobi ponieważ jest mało zaawansowany.
#!/bin/bash
#Autor: 3ED
#Ograniczenia du :-(
du_max_char="129290"
if [ $# = 0 ]; then
echo "pac-size wersja 0.2; Publiczna domena"
echo "·····································"
echo "Przykład użycia: $0 pakiet [pakiet] [pakiet] [..]"
echo
else
for pkg in $@; do
dus="0"
if [ $(echo $pkg|cut -c 1) != "-" ]; then
files="$(pacman -Ql $pkg|cut -d\ -f2)"
if [ $(echo $files|wc -c) -gt $du_max_char ]; then # metoda 1
for file in $files; do
[[ -f "$file" ]] && duf=$(du -b $file|cut -d/ -f1)
dus=$[dus+duf]
done
else # metoda 2 - szybsza lecz ograniczona, patrz "du_max_char"
if [ ! -z "$files" ]; then
dus="$(du -bc $files|tail -1)"
dus="$(echo $dus|cut -d\ -f1)"
fi
fi
[[ $dus != 0 ]] && \
echo "$pkg: $[dus/1024/1024],$[(dus-((dus/1024/1024)*1024*1024))/1024]MB"
fi
done
fi