Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: radoshow в Feb 02, 2012, 10:58



Титла: Проблем с премахване на пакет под Дебиан
Публикувано от: radoshow в Feb 02, 2012, 10:58
Здравейте Колеги,
От няколко дни ползвам Дебиан и общо взето съм доволен как работи.Но вчера реших да инсталирам един мейл нотифър да ми показва в панела когато получа нов мейл.Пробвах всички пакети,които ми предлагаше Синаптик,но за съжаление след инсталирането им не искаха да се стартират.За това прибягнах към свалянето на външен пакет (gamil-watcher).Изтеглих го и го инсталирах с gdebi.Инсталцията мина без проблем,но и той не искаше да стартира и реших да го премахна и от тогава почнаха мъките.Пробвах с apt-get,aptitude и dpkg,но ми дава все и една и съща грешка:
Код
GeSHi (Bash):
  1. rado@crunchbang:~$ sudo apt-get remove --purge gmail-watcher
  2. [sudo] password for rado:
  3. Четене на списъците с пакети... Готово
  4. Изграждане на дървото със зависимости      
  5. Четене на информацията за състоянието... Готово
  6. E: Пакетът gmail-watcher трябва да бъде преинсталиран, но не може да се намери архив за него.
  7.  
Пробвах да го преинсталирам,но резултата е същия.А при стартирането на Синаптик ми дава тази грешка:
(https://lh4.googleusercontent.com/-Mq_IHMa2NfQ/TypNva7ok5I/AAAAAAAABtg/CkKaaR1XgVE/s502/2012-02-02--1328172378_502x323_scrot.png)
Проблема,ако касаеше само този пакет,че не иска да се деинсталира щях да кажа майната му и нямаше да го пипам,но проблема е,че в момента не мога нито да инсталирам или деинсталирам пакет,назависимо дали опитвам през Синаптик или терминал.Моля дайте съвет как да оправя тази дивотия.
P.S. Пакета (gmail-watcher) не съм го теглил от съмнителен източник,а от Launchpad.Благодаря.


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: cybercop в Feb 02, 2012, 11:20
Опитай
dpkg --configure -a и apt-get install -f
Според мен, нещо се е сбъркал достъпа до хранилищата.


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: mom в Feb 02, 2012, 11:25
dpkg -P gmail-watcher
би трябвало да ти свърши работа.


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: radoshow в Feb 02, 2012, 11:33
@cybercop Това го пробвах още вчера,но без резултат.
@mom Ето какво ми връща твоята команда:
Код
GeSHi (Bash):
  1. root@crunchbang:~# dpkg -P gmail-watcher
  2. (Reading database ... 106570 files and directories currently installed.)
  3. Removing gmail-watcher ...
  4. xdg-desktop-menu: No writable system menu directory found.
  5. dpkg: error processing gmail-watcher (--purge):
  6. subprocess installed pre-removal script returned error exit status 3
  7. xdg-desktop-menu: No writable system menu directory found.
  8. dpkg: error while cleaning up:
  9. subprocess installed post-installation script returned error exit status 3
  10. Errors were encountered while processing:
  11. gmail-watcher
  12.  


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: cybercop в Feb 02, 2012, 11:38
@Radoshow : Виж в etc/apt/sources list. d да не ти е добавено някое хранилище. По принцип gdebi при инсталация на пакети добавя хранилища и внася ключове.


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: mom в Feb 02, 2012, 11:47
добави му --force-all, т.е.
dpkg -P --force-all gmail-watcher

справка man dpkg, търсиш за --force-things


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: radoshow в Feb 02, 2012, 11:48
@Radoshow : Виж в etc/apt/sources list. d да не ти е добавено някое хранилища. По принцип gdebi при инсталация на пакети добавя хранилища и внася ключове.
Ето ми го целия sources.list:
Код
GeSHi (Bash):
  1. ## CRUNCHBANG
  2. ## Compatible with Debian Squeeze, but use at your own risk.
  3. deb http://packages.crunchbang.org/statler statler main
  4. #deb-src http://packages.crunchbang.org/statler statler main
  5.  
  6. ## CRUNCHBANG MULTIMEDIA
  7. ## Debian Multimedia Mirror
  8. deb http://packages.crunchbang.org/statler-mm squeeze main non-free
  9. #deb-src http://packages.crunchbang.org/statler-mm squeeze main non-free
  10.  
  11. ## CRUNCHBANG MOZILLA
  12. ## Debian Mozilla Mirror
  13. deb http://packages.crunchbang.org/statler-mozilla squeeze-backports iceweasel-release
  14. #deb-src http://packages.crunchbang.org/statler-mozilla squeeze-backports iceweasel-release
  15.  
  16. ## DEBIAN
  17. deb http://ftp.debian.org/debian/ squeeze main contrib non-free
  18. #deb-src http://ftp.debian.org/debian/ squeeze main contrib non-free
  19.  
  20. ## DEBIAN SECURITY
  21. deb http://security.debian.org/ squeeze/updates main
  22. #deb-src http://security.debian.org/ squeeze/updates main
  23.  
  24. ## DEBIAN BACKPORTS
  25. deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
  26. #deb-src http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
  27.  
  28. ## SKYPE
  29. deb http://download.skype.com/linux/repos/debian/ stable non-free
  30.  
Не виждам нещо ново да се е добавило.Аз само съм добавил хранилището на Скайп,което е най-долу в списъка.


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: radoshow в Feb 02, 2012, 11:52
добави му --force-all, т.е.
dpkg -P --force-all gmail-watcher

справка man dpkg, търсиш за --force-things
И това пробвах днес сутринта.МАН-а на dpkg e отворен.Чета,пиша и бриша,ама няма оправия.


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: mom в Feb 02, 2012, 12:03
Една тъпа идея - пробва ли да направиш
apt-get update
преди това?

Идва ми на ум една грозна идея - /var/lib/dpkg/status - направи му резервно копие и виж какво пише в него за gmail-watcher. Пробвай да му смениш статуса на install ok installed и след това да го деинсталираш. Само не бъзикай други пакети, че ако се наложи да си връщаш резервното копие ще се разминава статуса им. Вероятно се сещаш сам, че с тази идея можеш добре да си прецакаш системата.


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: cybercop в Feb 02, 2012, 12:06
@Radoshow : Виж в etc/apt/sources list. d да не ти е добавено някое хранилища. По принцип gdebi при инсталация на пакети добавя хранилища и внася ключове.
Ето ми го целия sources.list:
Код
GeSHi (Bash):
  1. ## CRUNCHBANG
  2. ## Compatible with Debian Squeeze, but use at your own risk.
  3. deb http://packages.crunchbang.org/statler statler main
  4. #deb-src http://packages.crunchbang.org/statler statler main
  5.  
  6. ## CRUNCHBANG MULTIMEDIA
  7. ## Debian Multimedia Mirror
  8. deb http://packages.crunchbang.org/statler-mm squeeze main non-free
  9. #deb-src http://packages.crunchbang.org/statler-mm squeeze main non-free
  10.  
  11. ## CRUNCHBANG MOZILLA
  12. ## Debian Mozilla Mirror
  13. deb http://packages.crunchbang.org/statler-mozilla squeeze-backports iceweasel-release
  14. #deb-src http://packages.crunchbang.org/statler-mozilla squeeze-backports iceweasel-release
  15.  
  16. ## DEBIAN
  17. deb http://ftp.debian.org/debian/ squeeze main contrib non-free
  18. #deb-src http://ftp.debian.org/debian/ squeeze main contrib non-free
  19.  
  20. ## DEBIAN SECURITY
  21. deb http://security.debian.org/ squeeze/updates main
  22. #deb-src http://security.debian.org/ squeeze/updates main
  23.  
  24. ## DEBIAN BACKPORTS
  25. deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
  26. #deb-src http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
  27.  
  28. ## SKYPE
  29. deb http://download.skype.com/linux/repos/debian/ stable non-free
  30.  
Не виждам нещо ново да се е добавило.Аз само съм добавил хранилището на Скайп,което е най-долу в списъка.
sources list може да не е променен, но да е добавено хранилище в sources list.d
Моята е доста позапълнена http://img28.imageshack.us/img28/3985/sourceslistd.png


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: trosho в Feb 02, 2012, 13:48
@radoshow  Не си казал откъде и какъв пакет си свалил и инсталирал. Сигурен ли си, че е бил за Debian, а не за Ubuntu?

От това, което си показал, може да се предположи, че имаш проблем с команда в .prerm скрипта.
Ето какво е съдържанието на този скрипт в един пакет на gmail-watcher (от тук - цък ($2)):
Цитат
#! /bin/sh

xdg-desktop-menu uninstall gmail-watcher.desktop
Виждаш, че командата е същата, която ти вади грешка при опит да махнеш пакета.

Може да опиташ да оправиш работата на xdg-desktop-menu. Тя зависи, както от променливи на обкръжението (виж ги с команда "printenv | grep XDG"), така и от наличието или липсата на дадени директории.
Другият вариант е да редактираш .prerm скрипта (например - /var/lib/dpkg/info/gmail-watcher.prerm) и да коментираш командата, след което отново да опиташ деинсталация на пакета.


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: radoshow в Feb 02, 2012, 13:52
Една тъпа идея - пробва ли да направиш
apt-get update
преди това?

Идва ми на ум една грозна идея - /var/lib/dpkg/status - направи му резервно копие и виж какво пише в него за gmail-watcher. Пробвай да му смениш статуса на install ok installed и след това да го деинсталираш. Само не бъзикай други пакети, че ако се наложи да си връщаш резервното копие ще се разминава статуса им. Вероятно се сещаш сам, че с тази идея можеш добре да си прецакаш системата.
И това не помага.Това беше статуса на пакета преди промяната:
Код
GeSHi (Bash):
  1. Package: gmail-watcher
  2. Status: install reinstreq half-configured
  3. Priority: optional
  4. Section: devel
  5. Installed-Size: 268
  6. Maintainer: Gwendal Le Bihan <gwendal.lebihan.dev@gmail.com>
  7. Architecture: all
  8. Version: 0.2.9
  9. Depends: python (<< 2.7), python (>= 2.6), python-central (>= 0.6.11), python2.6, python-gtk2 (>= 2.14.1), python-gconf (>= 2.26.1), python-notify (>= 0.1.1-2), python-httplib2 (>= 0.4.0)
  10. Conffiles:
  11. /etc/xdg/autostart/gmail-watcher.desktop 7be48305485bb7670ffae001244d0c91
  12. Description: An applet for the GNOME desktop environment, checking for new mail messages on GMail accounts, and allowing to archive or mark messages as read without using the web interface.
  13. Python-Version: 2.6
Промених статуса на install ok installed и ето виж като се опитах да премахна пакета какво ми върна.
Код
GeSHi (Bash):
  1. rado@crunchbang:~/Desktop$ sudo apt-get remove gmail-watcher
  2. Четене на списъците с пакети... Готово
  3. Изграждане на дървото със зависимости      
  4. Четене на информацията за състоянието... Готово
  5. Следните пакети ще бъдат ПРЕМАХНАТИ:
  6.  gmail-watcher
  7. 0 актуализирани, 0 нови инсталирани, 1 за премахване и 0 без промяна.
  8. След тази операция ще бъде освободено 274 kB дисково пространство.
  9. Искате ли да продължите [Y/n]? y
  10. dpkg: parse error, in file '/var/lib/dpkg/status' near line 21844 package 'gmail-watcher':
  11. Configured-Version for package with inappropriate Status
  12. E: Sub-process /usr/bin/dpkg returned an error code (2)
На ред 21844 се намира това:
Код
GeSHi (Bash):
  1. Python-Version: 2.6


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: radoshow в Feb 02, 2012, 14:23
@radoshow  Не си казал откъде и какъв пакет си свалил и инсталирал. Сигурен ли си, че е бил за Debian, а не за Ubuntu?

От това, което си показал, може да се предположи, че имаш проблем с команда в .prerm скрипта.
Ето какво е съдържанието на този скрипт в един пакет на gmail-watcher (от тук - цък ($2)):
Цитат
#! /bin/sh

xdg-desktop-menu uninstall gmail-watcher.desktop

Виждаш, че командата е същата, която ти вади грешка при опит да махнеш пакета.

Може да опиташ да оправиш работата на xdg-desktop-menu. Тя зависи, както от променливи на обкръжението (виж ги с команда "printenv | grep XDG"), така и от наличието или липсата на дадени директории.
Другият вариант е да редактираш .prerm скрипта (например - /var/lib/dpkg/info/gmail-watcher.prerm) и да коментираш командата, след което отново да опиташ деинсталация на пакета.
Коментирах gmail-watcher.prerm скрипта,но пак не можа да се деинсталира пакета.Ето какво ми връща тази команда:
Код
GeSHi (Bash):
  1. rado@crunchbang:~$ printenv | grep XDG
  2. XDG_SESSION_COOKIE=c6246386a0efcad2319b7a200000000a-1328165768.600693-987749313
  3.  
Би ли пояснил какво трябва да направя да оправя работата на xdg-desktop-menu-то,защото за първи път се сблъсквам с такъв проблем и не ми е изобщо ясно как това трябва да стане.
P.S. Пакета го свалих от Launchpad и е за Убунту.


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: pulsari в Feb 02, 2012, 14:24
Изтрий всички записи на gmail-watcher от /var/lib/dpkg/info . След това изпълни sudo aptitude --purge remove gmail-watcher.


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: radoshow в Feb 02, 2012, 14:37
Изтрий всички записи на gmail-watcher от /var/lib/dpkg/info . След това изпълни sudo aptitude --purge remove gmail-watcher.
И това не помага.След като премахнах записите с името gmail-watcher от /var/lib/dpkg/info пуснах и командата.Виж какво ми върна:
Код
GeSHi (Bash):
  1. rado@crunchbang:~$ sudo aptitude --purge remove gmail-watcher
  2. [sudo] password for rado:
  3. The following packages will be REMOVED:    
  4.  gmail-watcher
  5. 0 packages upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
  6. Need to get 0 B of archives. After unpacking 274 kB will be freed.
  7. dpkg: error processing gmail-watcher (--remove):
  8. Package is in a very bad inconsistent state - you should
  9. reinstall it before attempting a removal.
  10. configured to not write apport reports
  11.                                      Errors were encountered while processing:
  12. gmail-watcher
  13. E: Sub-process /usr/bin/dpkg returned an error code (1)
  14. A package failed to install.  Trying to recover:
  15.  
Виж какво ме съветва.Преди да премахна пакета трябва първо да го преинсталирам.


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: jet в Feb 02, 2012, 15:04
пробвай с aptitude
вътре натисни "u"
като свършу - "g"
да видим какво ще изпее


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: trosho в Feb 02, 2012, 18:10
...
Коментирах gmail-watcher.prerm скрипта,но пак не можа да се деинсталира пакета.Ето какво ми връща тази команда:
Код
GeSHi (Bash):
  1. rado@crunchbang:~$ printenv | grep XDG
  2. XDG_SESSION_COOKIE=c6246386a0efcad2319b7a200000000a-1328165768.600693-987749313
  3.  
...
P.S. Пакета го свалих от Launchpad и е за Убунту.
Скриптът трябваше да изглежда така:
Цитат
#! /bin/sh

# xdg-desktop-menu uninstall gmail-watcher.desktop
Предполагам, че си направил това, но пак не се е получило.
При така редактиран скрипт, можеше да се пробва отново с "apt-get -f install".
Сега си изтрил нещата за gmail-watcher във /var/lib/dpkg/info и вече не виждам смилъл да пробваш нещо подобно.  Май трябва отново да инсталираш пакета, за да имаш необходимата информация в dpkg ("Package is in a very bad inconsistent state - you should reinstall it before attempting a removal")?

Най-близкото до Debian, което имам при мен, е Dreamlinux-5. Ето какви са променливите в него:
dreamer@dream:~$ env | grep XDG
XDG_MENU_PREFIX=xfce-
XDG_SESSION_COOKIE=4ef275687fcafa68385eb55f00000692-1328204707.818707-448725499
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_CONFIG_DIRS=/etc/xdg
XDG_DATA_DIRS=/usr/local/share:/usr/share

Мисля, че важната в случая е тази - XDG_DATA_DIRS=/usr/local/share:/usr/share .
Можеш да опиташ това:
Код:
export XDG_DATA_DIRS=/usr/local/share:/usr/share
Провери отново с "env | grep XDG" дали променливата е експортната и след това пробваш дали командата с "xdg-desktop-menu..." ще работи.


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: radoshow в Feb 02, 2012, 19:01
@jet Виж какво ми изпя:
(https://lh6.googleusercontent.com/-zT82Jus-ayU/Tyq4j4xshpI/AAAAAAAABts/5o7wvVfMDh0/s647/2012-02-02--1328199698_647x403_scrot.png)

@ trosho  Преинсталирах пакета.Експортнах директориите.И при изпълнението на  xdg-desktop-menu виж какво ми връща:
Код
GeSHi (Bash):
  1. rado@crunchbang:~$ export XDG_DATA_DIRS=/usr/local/share:/usr/share
  2. rado@crunchbang:~$ env | grep XDG
  3. XDG_SESSION_COOKIE=c6246386a0efcad2319b7a200000000a-1328197650.340269-1386630746
  4. XDG_DATA_DIRS=/usr/local/share:/usr/share
  5. rado@crunchbang:~$ sudo xdg-desktop-menu uninstall --noupdate gmail-watcher.desktop
  6. xdg-desktop-menu: No writable system menu directory found.
  7. rado@crunchbang:~$ sudo xdg-desktop-menu uninstall gmail-watcher.directory
  8. xdg-desktop-menu: desktop-file argument missing
Може би аз греша нещо командите.  >:( :(


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: trosho в Feb 02, 2012, 21:01

@ trosho  Преинсталирах пакета.Експортнах директориите.И при изпълнението на  xdg-desktop-menu виж какво ми връща:

Вероятно си прочел, че с команда xdg-desktop-menu се добавят/премахват елементи в менюто. Не е нещо фатално, ако не се добави, или ако остане, такъв елемент, но лошото е това, че грешката се появява в .prerm скрипта. Как обаче да спрем грешката, за да продължи деинсталирането на пакета?

Единият вариант беше да се коментира командата в скрипта, но казваш, че това не действа. Между другото, ето една тема с такъв проблем, където това е помогнало - цък ($2) (грешката се е получила отново при инсталиране на .deb пакет за Ubuntu в Debian базирана система).

Доколкото знам, xdg-desktop-menu пипа в директории /usr/share/applications и в /usr/share/desktop-directories (или в директории със същите имена в /usr/local/share/). Четох някъде, че ако липсва /usr/share/desktop-directories, например, тогава тя плюе грешка "No writable system menu directory found".
Не знам какво друго да ти предложа, освен да огледаш дали ги имаш тези директории и ако някоя липсва, да я създадеш.
Eто как са установени правата за desktop-directories при мен, в openSUSE 11.4 (не мога в момента да стартирам от флашката):
Код:
#ls -dl /usr/share/desktop-directories
drwxr-xr-x 2 root root 12288 Jul  4  2011 /usr/share/desktop-directories
А ето и какви са променливите:
Код:
# printenv | grep XDG
XDG_CONFIG_DIRS=/etc/xdg
XDG_DATA_DIRS=/usr/share


Титла: Re: Проблем с премахване на пакет под Дебиан
Публикувано от: jet в Feb 02, 2012, 22:19
@jet Виж какво ми изпя:
(https://lh6.googleusercontent.com/-zT82Jus-ayU/Tyq4j4xshpI/AAAAAAAABts/5o7wvVfMDh0/s647/2012-02-02--1328199698_647x403_scrot.png)
давай "g"