Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: bjes_des 17 Září 2009, 01:31:57
-
Při pokusu spustit Synaptic kvůli aktualizaci nebo odinstalování Virtualboxu dostávám tuto hlášku: E: Balík virtualbox-3.0 je potřeba přeinstalovat, ale nemohu pro něj nalézt archiv.
E: Vnitřní chyba při otevírání vyrovnávací paměti (1). Prosím nahlašte.
Doporučení znělo použít terminál: Není možné instalovat ani odebírat programy. Prosím použijte správce balíků "Synaptic" nebo nejdříve spusťe v terminálu "sudo apt-get install -f" pro nápravu tohoto problému.
Výsledek je opět tento: Čtu seznamy balíků... Hotovo
Vytvářím strom závislostí
Čtu stavové informace... Hotovo
E: Balík virtualbox-3.0 je potřeba přeinstalovat, ale nemohu pro něj nalézt archiv.
Po upozornění na chybějící složku /etc/init.d/vboxdrv jsem se ji pokusil příkazem mkdir vytvořit, ale neúspěšně, protože existovala. Poradíte způsob, jak se dostat z tohoto patu? Díky.
-
Nevim, jestli to pomuze v tomto pripade, ale jednou se mi stala podobna vec, ze to hlasilo chybu pri "sudo apt-get install -f" a pomohlo misto "apt-get" pouzit "aptitude".
-
sudo dpkg --remove --force-remove-reinstreq virtualbox(nebo virtualbox-3.0)
-
sudo dpkg --remove --force-remove-reinstreq virtualbox(nebo virtualbox-3.0)
Výsledek:
dpkg - varování, potlačuji problém, protože je nastaveno --force:
Balík je ve velmi špatném, nekonzistentním stavu - před
pokusem o odstranění ho raději přeinstalujte.
(Čtu databázi ... nyní je nainstalováno 247493 souborů a adresářů.)
Odinstalování balíku virtualbox-3.0 ...
invoke-rc.d: unknown initscript, /etc/init.d/vboxdrv not found.
dpkg: chyba při zpracovávání virtualbox-3.0 (--remove):
podproces pre-removal script vrátil chybový status 100
addgroup: Skupina 'vboxusers' již existuje jako systémová skupina. Končím.
Messages emitted during module compilation will be logged to /var/log/vbox-install.log.
Success!
update-rc.d: /etc/init.d/vboxdrv: file does not exist
invoke-rc.d: unknown initscript, /etc/init.d/vboxdrv not found.
dpkg: chyba při úklidu:
podproces post-installation script vrátil chybový status 100
Při zpracování nastaly chyby:
virtualbox-3.0
Je to stejná hláška jako při použití "apt-get install".
-
Zkus spustit
sudo /var/lib/dpkg/info/virtualbox-3.0.postinst abort-removeco to vypíše.
Pokud píše, že soubor neexistuje, dej tady výpis z ls -l /var/lib/dpkg/info/virtualbox*
-
Vkládejte i s těmi příkazy! Ať je vidět, že tam nemáte chybu...
-
joska@joska-laptop:~$ sudo /var/lib/dpkg/info/virtualbox-3.0.postinst abort-remove
[sudo] password for joska:
addgroup: Skupina 'vboxusers' již existuje jako systémová skupina. Končím.
Messages emitted during module compilation will be logged to /var/log/vbox-install.log.
Success!
update-rc.d: /etc/init.d/vboxdrv: file does not exist
invoke-rc.d: unknown initscript, /etc/init.d/vboxdrv not found.
joska@joska-laptop:~$
joska@joska-laptop:~$ ls -l /var/lib/dpkg/info/virtualbox*
-rw-r--r-- 1 root root 37 2009-03-18 20:57 /var/lib/dpkg/info/virtualbox-2.0.list
-rwxr-xr-x 1 root root 2020 2008-11-21 21:00 /var/lib/dpkg/info/virtualbox-2.0.postrm
-rw-r--r-- 1 root root 17 2009-09-01 10:37 /var/lib/dpkg/info/virtualbox-2.1.list
-rwxr-xr-x 1 root root 1226 2009-02-16 22:56 /var/lib/dpkg/info/virtualbox-2.1.postrm
-rw-r--r-- 1 root root 20 2009-08-04 20:10 /var/lib/dpkg/info/virtualbox-3.0.conffiles
-rw-r--r-- 1 root root 30244 2009-09-05 13:24 /var/lib/dpkg/info/virtualbox-3.0.list
-rw-r--r-- 1 root root 43020 2009-08-04 20:11 /var/lib/dpkg/info/virtualbox-3.0.md5sums
-rwxr-xr-x 1 root root 6534 2009-08-04 20:10 /var/lib/dpkg/info/virtualbox-3.0.postinst
-rwxr-xr-x 1 root root 841 2009-08-04 20:10 /var/lib/dpkg/info/virtualbox-3.0.postrm
-rwxr-xr-x 1 root root 1804 2009-08-04 20:10 /var/lib/dpkg/info/virtualbox-3.0.preinst
-rwxr-xr-x 1 root root 2120 2009-08-04 20:10 /var/lib/dpkg/info/virtualbox-3.0.prerm
-rw-r--r-- 1 root root 4209 2009-06-30 15:40 /var/lib/dpkg/info/virtualbox-3.0.templates
joska@joska-laptop:~$
-
ls -l /etc/init.d/vboxdrv(pokuds' ten soubor nepřepsal, jak píšeš v prvním příspěvku)
-
joska@joska-laptop:~$ ls -l /etc/init.d/vboxdrv
celkem 0
joska@joska-laptop:~$
-
joska@joska-laptop:~$ ls -l /etc/init.d/vboxdrv
celkem 0
joska@joska-laptop:~$
Po upozornění na chybějící složku /etc/init.d/vboxdrv jsem se ji pokusil příkazem mkdir vytvořit, ale neúspěšně, protože existovala.
Tyto dva příspěvky si nějak odporují.
Ale stejně - když se kouknu na svůj postinst skript, tak ten testuje, jestli ten soubor /etc/init.d/vboxdrv existuje, a pokud ne, tak by k update-rc.d nemělo dojít... Máš nějakou jinou verzi?
Vyzkoušíme to. Dej tady výpis z cat /var/lib/dpkg/info/virtualbox-3.0.postinstasudo sh -x /var/lib/dpkg/info/virtualbox-3.0.postinst abort-removeobojí ale prosím do kódu - bude to dlouhé (viz ikonka (http://forum.ubuntu.cz/Themes/Ubuntu/images/bbc/code.gif) nahoře při odpovědi).
-
joska@joska-laptop:~$ cat /var/lib/dpkg/info/virtualbox-3.0.postinst
#!/bin/sh
LOG="/var/log/vbox-install.log"
# for debconf
. /usr/share/debconf/confmodule
db_version 2.0
# remove old cruft
if [ -f /etc/init.d/vboxdrv.sh ]; then
echo "Found old version of /etc/init.d/vboxdrv.sh, removing."
rm /etc/init.d/vboxdrv.sh
update-rc.d vboxdrv.sh remove >/dev/null
fi
if [ -f /etc/vbox/vbox.cfg ]; then
echo "Found old version of /etc/vbox/vbox.cfg, removing."
rm /etc/vbox/vbox.cfg
fi
# install udev rule
if [ -d /etc/udev/rules.d ]; then
udev_call=""
udev_app=`which udevadm 2> /dev/null`
if [ $? -eq 0 ]; then
udev_call="${udev_app} version 2> /dev/null"
else
udev_app=`which udevinfo 2> /dev/null`
if [ $? -eq 0 ]; then
udev_call="${udev_app} -V 2> /dev/null"
fi
fi
udev_fix="="
if [ "${udev_call}" != "" ]; then
udev_out=`${udev_call}`
udev_ver=`expr "$udev_out" : '[^0-9]*\([0-9]*\)'`
if [ "$udev_ver" = "" -o "$udev_ver" -lt 55 ]; then
udev_fix=""
fi
fi
echo "KERNEL=${udev_fix}\"vboxdrv\", NAME=\"vboxdrv\", OWNER=\"root\", GROUP=\"root\", MODE=\"0600\"" \
> /etc/udev/rules.d/10-vboxdrv.rules
echo "SUBSYSTEM=${udev_fix}\"usb_device\", GROUP=\"vboxusers\", MODE=\"0664\"" \
>> /etc/udev/rules.d/10-vboxdrv.rules
echo "SUBSYSTEM=${udev_fix}\"usb\", ENV{DEVTYPE}==\"usb_device\", GROUP=\"vboxusers\", MODE=\"0664\"" \
>> /etc/udev/rules.d/10-vboxdrv.rules
fi
# create users groups
db_input high virtualbox/group-vboxusers || true
db_go || true
addgroup --system vboxusers || true
if [ ! -f /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
db_get virtualbox/module-compilation-allowed
if [ "$RET" = "false" ]; then
cat << EOF
Unable to find a precompiled module for the current kernel
though module compilation denied by debconf setting.
EOF
else
db_input critical virtualbox/module-compilation-allowed || true
db_go || true
db_get virtualbox/module-compilation-allowed
if [ "$RET" = "true" ]; then
# Compile module. Don't show a message box here if everything works well.
cat << EOF
Messages emitted during module compilation will be logged to $LOG.
EOF
rm -f /etc/vbox/module_not_compiled
echo "** Compiling vboxdrv" > /var/log/vbox-install.log
if ! /usr/share/virtualbox/src/vboxdrv/build_in_tmp \
--save-module-symvers /tmp/vboxdrv-Module.symvers \
--no-print-directory KBUILD_VERBOSE= \
install >> /var/log/vbox-install.log 2>&1; then
db_fset virtualbox/module-compilation-failed seen false
db_input critical virtualbox/module-compilation-failed || true
db_go || true
touch /etc/vbox/module_not_compiled
# don't abort the installation!
else
echo "** Compiling vboxnetflt" >> /var/log/vbox-install.log
if ! /usr/share/virtualbox/src/vboxnetflt/build_in_tmp \
--use-module-symvers /tmp/vboxdrv-Module.symvers \
--no-print-directory KBUILD_VERBOSE= \
install >> /var/log/vbox-install.log 2>&1; then
db_fset virtualbox/module-compilation-failed seen false
db_input critical virtualbox/module-compilation-failed || true
db_go || true
touch /etc/vbox/module_not_compiled
# don't abort the installation!
else
echo "** Compiling vboxnetadp" >> /var/log/vbox-install.log
if ! /usr/share/virtualbox/src/vboxnetadp/build_in_tmp \
--use-module-symvers /tmp/vboxdrv-Module.symvers \
--no-print-directory KBUILD_VERBOSE= \
install >> /var/log/vbox-install.log 2>&1; then
db_fset virtualbox/module-compilation-failed seen false
db_input critical virtualbox/module-compilation-failed || true
db_go || true
touch /etc/vbox/module_not_compiled
# don't abort the installation!
fi
fi
fi
if [ ! -f /etc/vbox/module_not_compiled ]; then
# success
cat << EOF
Success!
EOF
fi
fi
fi
fi
# There might be an old module active (e.g. manually loaded)
if lsmod | grep -q "vboxdrv[^_-]"; then
/etc/init.d/vboxdrv stop || true
fi
# The starters need to be Suid root. They drop the privileges before starting
# the real frontend.
if ! dpkg-statoverride --list /usr/lib/virtualbox/VirtualBox > /dev/null 2>&1; then
chmod 4511 /usr/lib/virtualbox/VirtualBox
fi
if ! dpkg-statoverride --list /usr/lib/virtualbox/VBoxHeadless > /dev/null 2>&1; then
chmod 4511 /usr/lib/virtualbox/VBoxHeadless
fi
if ! dpkg-statoverride --list /usr/lib/virtualbox/VBoxSDL > /dev/null 2>&1; then
chmod 4511 /usr/lib/virtualbox/VBoxSDL
fi
if ! dpkg-statoverride --list /usr/lib/virtualbox/VBoxNetDHCP > /dev/null 2>&1; then
chmod 4511 /usr/lib/virtualbox/VBoxNetDHCP
fi
if ! dpkg-statoverride --list /usr/lib/virtualbox/VBoxNetAdpCtl > /dev/null 2>&1; then
chmod 4511 /usr/lib/virtualbox/VBoxNetAdpCtl
fi
# Automatically added by dh_installmodules
if [ "$1" = "configure" ]; then
if [ -e "/etc/modprobe.d/virtualbox-3.0" ]; then
echo "Preserving user changes to /etc/modprobe.d/virtualbox-3.0.conf ..."
if [ -e "/etc/modprobe.d/virtualbox-3.0.conf" ]; then
mv -f "/etc/modprobe.d/virtualbox-3.0.conf" "/etc/modprobe.d/virtualbox-3.0.conf.dpkg-new"
fi
mv -f "/etc/modprobe.d/virtualbox-3.0" "/etc/modprobe.d/virtualbox-3.0.conf"
fi
fi
# End automatically added section
# Automatically added by dh_installmodules
if [ "$1" = "configure" ]; then
if [ -e /boot/System.map-2.6.28-14-server ]; then
depmod -a -F /boot/System.map-2.6.28-14-server 2.6.28-14-server || true
fi
fi
# End automatically added section
# Automatically added by dh_installmodules
if [ "$1" = "configure" ]; then
if [ -e /boot/System.map-2.6.28-14-generic ]; then
depmod -a -F /boot/System.map-2.6.28-14-generic 2.6.28-14-generic || true
fi
fi
# End automatically added section
# Automatically added by dh_pycentral
rm -f /var/lib/pycentral/virtualbox-3.0.pkgremove
if which pycentral >/dev/null 2>&1; then
pycentral pkginstall virtualbox-3.0
if grep -qs '^virtualbox-3.0$' /var/lib/pycentral/delayed-pkgs; then
sed -i '/^virtualbox-3.0$/d' /var/lib/pycentral/delayed-pkgs
fi
fi
# End automatically added section
# Start vboxnet/vboxdrv manually as we use our own error handling in postrm
if [ -x "/etc/init.d/vboxdrv" ]; then
update-rc.d vboxdrv defaults >/dev/null
if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
invoke-rc.d vboxdrv start || exit $?
else
/etc/init.d/vboxdrv start || exit $?
fi
fi
exit 0
joska@joska-laptop:~$
-
joska@joska-laptop:~$ sudo sh -x /var/lib/dpkg/info/virtualbox-3.0.postinst abort-remove
[sudo] password for joska:
+ LOG=/var/log/vbox-install.log
+ . /usr/share/debconf/confmodule
+ [ ! ]
+ PERL_DL_NONLAZY=1
+ export PERL_DL_NONLAZY
+ [ ]
+ exec /usr/share/debconf/frontend /var/lib/dpkg/info/virtualbox-3.0.postinst abort-remove
addgroup: Skupina 'vboxusers' již existuje jako systémová skupina. Končím.
Messages emitted during module compilation will be logged to /var/log/vbox-install.log.
Success!
update-rc.d: /etc/init.d/vboxdrv: file does not exist
invoke-rc.d: unknown initscript, /etc/init.d/vboxdrv not found.
joska@joska-laptop:~$
-
Ještě prosím jednou. Otevři si soubor /var/lib/dpkg/info/virtualbox-3.0.postinst
gksudo gedit /var/lib/dpkg/info/virtualbox-3.0.postinsta najdi 50. řádek, který vypadá takto: addgroup --system vboxusers || true. Vlož ZA něj řádek set -x, takže to bude vypadat takto...
addgroup --system vboxusers || true
set -x
if [ ! -f /lib/modules/`uname -r`/misc/vboxdrv.ko ]; then
...
Pak znovu spusťsudo sh -x /var/lib/dpkg/info/virtualbox-3.0.postinsta výsledek sem.
-
joska@joska-laptop:~$ sudo sh -x /var/lib/dpkg/info/virtualbox-3.0.postinst
+ LOG=/var/log/vbox-install.log
+ . /usr/share/debconf/confmodule
+ [ ! ]
+ PERL_DL_NONLAZY=1
+ export PERL_DL_NONLAZY
+ [ ]
+ exec /usr/share/debconf/frontend /var/lib/dpkg/info/virtualbox-3.0.postinst
addgroup: Skupina 'vboxusers' již existuje jako systémová skupina. Končím.
+ uname -r
+ [ ! -f /lib/modules/2.6.28-15-generic/misc/vboxdrv.ko ]
+ db_get virtualbox/module-compilation-allowed
+ _db_cmd GET virtualbox/module-compilation-allowed
+ IFS= printf %s\n GET virtualbox/module-compilation-allowed
+ IFS=
read -r _db_internal_line
+ RET=true
+ return 0
+ [ true = false ]
+ db_input critical virtualbox/module-compilation-allowed
+ _db_cmd INPUT critical virtualbox/module-compilation-allowed
+ IFS= printf %s\n INPUT critical virtualbox/module-compilation-allowed
+ IFS=
read -r _db_internal_line
+ RET=30 question skipped
+ return 30
+ true
+ db_go
+ _db_cmd GO
+ IFS= printf %s\n GO
+ IFS=
read -r _db_internal_line
+ RET=ok
+ return 0
+ db_get virtualbox/module-compilation-allowed
+ _db_cmd GET virtualbox/module-compilation-allowed
+ IFS= printf %s\n GET virtualbox/module-compilation-allowed
+ IFS=
read -r _db_internal_line
+ RET=true
+ return 0
+ [ true = true ]
+ cat
Messages emitted during module compilation will be logged to /var/log/vbox-install.log.
+ rm -f /etc/vbox/module_not_compiled
+ echo ** Compiling vboxdrv
+ /usr/share/virtualbox/src/vboxdrv/build_in_tmp --save-module-symvers /tmp/vboxdrv-Module.symvers --no-print-directory KBUILD_VERBOSE= install
+ echo ** Compiling vboxnetflt
+ /usr/share/virtualbox/src/vboxnetflt/build_in_tmp --use-module-symvers /tmp/vboxdrv-Module.symvers --no-print-directory KBUILD_VERBOSE= install
+ echo ** Compiling vboxnetadp
+ /usr/share/virtualbox/src/vboxnetadp/build_in_tmp --use-module-symvers /tmp/vboxdrv-Module.symvers --no-print-directory KBUILD_VERBOSE= install
+ [ ! -f /etc/vbox/module_not_compiled ]
+ cat
Success!
+ lsmod
+ grep -q vboxdrv[^_-]
+ dpkg-statoverride --list /usr/lib/virtualbox/VirtualBox
+ chmod 4511 /usr/lib/virtualbox/VirtualBox
+ dpkg-statoverride --list /usr/lib/virtualbox/VBoxHeadless
+ chmod 4511 /usr/lib/virtualbox/VBoxHeadless
+ dpkg-statoverride --list /usr/lib/virtualbox/VBoxSDL
+ chmod 4511 /usr/lib/virtualbox/VBoxSDL
+ dpkg-statoverride --list /usr/lib/virtualbox/VBoxNetDHCP
+ chmod 4511 /usr/lib/virtualbox/VBoxNetDHCP
+ dpkg-statoverride --list /usr/lib/virtualbox/VBoxNetAdpCtl
+ chmod 4511 /usr/lib/virtualbox/VBoxNetAdpCtl
+ [ = configure ]
+ [ = configure ]
+ [ = configure ]
+ rm -f /var/lib/pycentral/virtualbox-3.0.pkgremove
+ which pycentral
+ pycentral pkginstall virtualbox-3.0
+ grep -qs ^virtualbox-3.0$ /var/lib/pycentral/delayed-pkgs
+ [ -x /etc/init.d/vboxdrv ]
+ update-rc.d vboxdrv defaults
update-rc.d: /etc/init.d/vboxdrv: file does not exist
+ which invoke-rc.d
+ [ -x /usr/sbin/invoke-rc.d ]
+ invoke-rc.d vboxdrv start
invoke-rc.d: unknown initscript, /etc/init.d/vboxdrv not found.
+ exit 100
joska@joska-laptop:~$
-
Tak tohle je běs děs... Co prosím Tě vypíše
if [ -x /etc/init.d/vboxdrv ]; then stat /etc/init.d/vboxdrv; fi
-
joska@joska-laptop:~$ if [ -x /etc/init.d/vboxdrv ]; then stat /etc/init.d/vboxdrv; fi
File: „/etc/init.d/vboxdrv“
Size: 4096 Blocks: 8 IO Block: 4096 adresář
Device: 801h/2049d Inode: 928663 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-09-17 09:55:19.000000000 +0200
Modify: 2009-09-06 00:38:40.000000000 +0200
Change: 2009-09-06 00:38:40.000000000 +0200
joska@joska-laptop:~$
-
Tak už je to konečně jasnější... Taky jsem si toho mohl všimnout dřív... Takže
sudo rm -rf /etc/init.d/vboxdrv
sudo touch /etc/init.d/vboxdrv
sudo dpkg --remove --force-remove-reinstreq virtualbox-3.0
-
joska@joska-laptop:~$ sudo rm -rf /etc/init.d/vboxdrv
[sudo] password for joska:
joska@joska-laptop:~$ sudo touch /etc/init.d/vboxdrv
joska@joska-laptop:~$ sudo dpkg --remove --force-remove-reinstreq virtualbox-3.0
dpkg - varování, potlačuji problém, protože je nastaveno --force:
Balík je ve velmi špatném, nekonzistentním stavu - před
pokusem o odstranění ho raději přeinstalujte.
(Čtu databázi ... nyní je nainstalováno 247493 souborů a adresářů.)
Odinstalování balíku virtualbox-3.0 ...
* Shutting down VirtualBox host networking * done.
joska@joska-laptop:~$
Tady je výsledek a Synaptic pracuje ! Takže už to není běs děs, ale bjes_des děkuje za věnovaný čas a účinnou pomoc! Hezký večer!