Ich erhalte einen apt-get-Fehler, der besagt
E: The package brmfc7340lpr needs to be reinstalled, but I can't find an archive for it.
Der brmfc7340lpr ist ein Druckertreiber - es ist eine lokale Deb-Datei. Ein dpkg oder apt-get purge zu machen funktioniert nicht und auch nicht apt-get install -f
.
Wie installiere ich ein Paket aus einer lokalen Deb-Datei neu?
Ausgabe:
box-name% sudo apt-get upgrade
[sudo] password for username:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: The package brmfc7340lpr needs to be reinstalled, but I can't find an archive for it.
box-name% sudo apt-get purge brmfc7340lpr
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: The package brmfc7340lpr needs to be reinstalled, but I can't find an archive for it.
box-name% sudo dpkg --purge brmfc7340lpr
dpkg: error processing brmfc7340lpr (--purge):
Package is in a very bad inconsistent state - you should
reinstall it before attempting a removal.
Errors were encountered while processing:
brmfc7340lpr
box-name% sudo dpkg --install brmfc7340lpr-2.0.2-1.i386.deb
Selecting previously deselected package brmfc7340lpr.
(Reading database ... 725204 files and directories currently installed.)
Preparing to replace brmfc7340lpr 2.0.2-1 (using .../brmfc7340lpr-2.0.2-1.i386.deb) ...
Unpacking replacement brmfc7340lpr ...
start: Unknown job: lpd
dpkg: warning: subprocess old post-removal script returned error exit status 1
dpkg - trying script from the new package instead ...
start: Unknown job: lpd
dpkg: error processing brmfc7340lpr-2.0.2-1.i386.deb (--install):
subprocess new post-removal script returned error exit status 1
start: Unknown job: lpd
dpkg: error while cleaning up:
subprocess new post-removal script returned error exit status 1
Errors were encountered while processing:
brmfc7340lpr-2.0.2-1.i386.deb
box-name% sudo apt-get install -f
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: The package brmfc7340lpr needs to be reinstalled, but I can't find an archive for it.
box-name%
drivers
package-management
Roman A. Taycher
quelle
quelle
Antworten:
Sie können ein Paket jederzeit (neu) installieren, indem Sie
dpkg
:Um eine "Reinraum" -Installation durchzuführen, können Sie zuerst das Paket löschen und dann erneut installieren:
Möglicherweise müssen Sie
--force-depends
während der Bereinigung eine Option hinzufügen , wenn ein anderes Paket davon abhängtbrmfc7340lpr
.Update: Basierend auf dem von Ihnen veröffentlichten Transkript scheint es, dass das
brmfc7340lpr
Paket nicht (erneut) installiert werden kann, da das Skript nach dem Entfernen fehlerhaft ist.Diese Dateien werden im Verzeichnis gespeichert
/var/lib/dpkg/info
. Für jedes PaketX
kann eines der folgenden Skripte vorhanden sein:X.postinst
Führen Sie diese aus, nachdem das Paket installiert wurde, z. B. um die vom Paket bereitgestellten Dienste zu starten.X.prerm
Führen Sie diese Option aus, bevor Sie das Paket entfernen / löschen, z. B. um sicherzustellen, dass die vom Paket bereitgestellten Daemons gestoppt werden.X.postrm
Führen Sie diese aus, nachdem das Paket entfernt wurde, z. B. um einem Dienst, der optional das Paket verwendet, zu signalisieren, dass es nicht mehr verfügbar ist. (Beispielsweise möchte ein Druckertreiberpaket möglicherweise cpus / lpr signalisieren, Drucker abhängig von diesem bestimmten Treiber zu entfernen.)Nun
brmfc7340lpr
scheint dieses Paket zu versuchen, denlpd
Drucker-Daemon beim Entfernen (neu) zu starten , was nicht funktioniert, da Ubuntu stattdessen CUPS verwendet: Sie sollten auf jeden Fall nach einem CUPS-kompatiblen Druckertreiber suchen - siehe den Link in der Antwort von Jorge Castro. (Ich denke, dies ist ein Fehler im Paket, da derlpd
Dienst nicht unbedingt neu gestartet werden sollte, sondern nur neu geladen werden sollte, wenn er bereits ausgeführt wird .)Die beste Option, um fortzufahren, ergibt sich aus dieser Launchpad-Antwort :
Dadurch wird CUPS effektiv (neu) gestartet, wenn
lpd
stattdessen nach dem Dienst gesucht wird.Ansonsten sehe ich nur zwei Optionen, die beide ziemlich unangenehm sind:
Bearbeiten Sie entweder das
/var/lib/dpkg/info/brmfc7340lpr.postrm
Skript und kommentieren Sie die Zeile aus, die aufgerufen wird/etc/init.d/lpd start
(oderrestart
oderstop
) (z. B. ersetzen Sie sie einfach durch/bin/true
). Eine andere Möglichkeit besteht darin, nurexit 0
als erste Zeile ohne Kommentar im Skript zu platzieren. Dies wäre mein Favorit, erfordert aber ein wenig Vertrauen in die Bearbeitung von Shell-Skripten.Installieren
lpr
, Löschen desbrmfc6340lpr
Pakets, Löschenlpr
: Dies erfordert ein wenig Aufmerksamkeit, dalpr
Konflikte mit dem Standard-Ubuntu-Drucker-Spooling-System CUPS auftreten:ein.
sudo aptitude install lpr
(Dies wird entferntcups-bsd
undubuntu-desktop
als Nebeneffekt)b.
sudo aptitude purge brmfc7340lpr lpr
(sollte jetzt funktionieren)c.
sudo aptitude install cups-bsd ubuntu-desktop
(System in seinen ursprünglichen Zustand zurückversetzen)quelle
--purge
zuerst und dann--install
?Riccardos Lösung sollte funktionieren, ich vermute, das Problem liegt hier:
start: Unknown job: lpd
Vermutung 1: Es sieht so aus, als würde die Deb versuchen, einen Dienst neu zu starten, der nicht ausgeführt wird und fehlerhaft ist. Versuchen Sie, das
lpr
Paket aus den Repositorys zu installieren und dann das Deb zu installieren, und prüfen Sie, ob dies funktioniert.Vermutung 2: Es hört sich so an, als würden Sie versuchen, eine Deb von einer Website für einen Bruder 7340-Drucker zu installieren: Diese Seite ist möglicherweise ein guter Ausgangspunkt, wenn Sie sie in eine andere Frage aufteilen möchten.
quelle
Eigentlich bin ich auf das gleiche Problem gestoßen. Es stellte sich heraus, dass ich einige irrelevante Informationen befolgt und eine
/etc/init.d/lpd
Datei als Softlink zu erstellt habe./etc/init.d/cups
Das.postrm
Skript sucht nach lpd und versucht, den Dienst zu starten, falls vorhanden. Nachdem ich die softlinked lpd-Datei im Verzeichnis init.d gelöscht hatte, wurde die Installation und Entfernung des Pakets wieder normal.quelle
Das Problem hier scheint zu sein, dass das Paket es geschafft hat, sich zur Hälfte zu installieren, aber jetzt sind alle seine Maintainer-Skripte fehlerhaft (da der lpd-Dienst nicht gestartet werden kann).
Sie sollten in der Lage sein, dies zu beheben, indem Sie die
/var/lib/dpkg/info/brmfc7340lpr.postrm
Datei bearbeiten und#
die Zeile auskommentieren ( indem Sie am Anfang der Zeile hinzufügen ), die versucht, lpd zu starten (oder einfach alles auskommentieren). Sie sollten dann in der Lage seindpkg --configure -a
, das Paket ordnungsgemäß zu installieren, bevor Sie es entfernen können.Sie könnten mehrere der Pakete Betreuer - Skripte , um bearbeiten müssen das Paket entfernen - sie alle in sein werden
/var/lib/dpkg/info/
, und sie werden wie etwas genannt werden ,brmfc7340lpr.X
woX
einer der folgenden sein kannpreinst
,postinst
,prerm
,postrm
.Dies ist ein Beispiel für die Art von Chaos, die ein schlecht geschriebenes Paket anrichten kann.
quelle