Rom*_*her 10 package-management drivers
我收到一个 apt-get 错误,说
E: The package brmfc7340lpr needs to be reinstalled, but I can't find an archive for it.
brmfc7340lpr 是一个打印机驱动程序——它是一个本地 deb 文件。执行 dpkg 或 apt-get purge 不起作用,apt-get install -f.
如何从本地 deb 文件重新安装软件包?
输出:
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%
Run Code Online (Sandbox Code Playgroud)
Ric*_*rri 13
您始终可以(重新)使用dpkg以下方法安装软件包:
dpkg --install local-file.deb
Run Code Online (Sandbox Code Playgroud)
为了进行“洁净室”安装,您可以先清除软件包,然后再次安装:
dpkg --purge brmfc7340lpr
dpkg --install brmfc7340lpr*.deb
Run Code Online (Sandbox Code Playgroud)
您可能需要添加选项--force-depends清除期间,如果一些其他软件包依赖brmfc7340lpr。
更新:根据您发布的成绩单,似乎brmfc7340lpr无法(重新)安装该
软件包,因为其删除后脚本出错。
这些文件存储在目录中/var/lib/dpkg/info;对于每个包X,可以有以下任一脚本:
X.postinst在安装包后运行,例如启动包提供的服务。
X.prerm在删除/清除包之前运行,例如,以确保停止包提供的守护程序。
X.postrm在包被删除后运行,例如,向可选地使用该包的任何服务发出信号,表明它不再可用。(例如,打印机驱动程序包可能希望根据特定驱动程序向 cpus/lpr 发出信号以删除打印机。)
现在,这个brmfc7340lpr包似乎lpd
在删除时尝试(重新)启动打印机守护进程,这将不起作用,因为 Ubuntu 使用 CUPS:您绝对应该寻找与 CUPS 兼容的打印机驱动程序 - 请参阅 Jorge Castro 的答案中的链接。(我认为这是包中的一个错误,因为它不应该lpd无条件地重新启动服务,而是如果它已经在运行就重新加载它。)
前进的最佳选择来自此启动板答案:
ln -s /etc/init.d/cpus /etc/init.d/lpd
Run Code Online (Sandbox Code Playgroud)
这将在lpd搜索服务时有效地(重新)启动 CUPS 。
否则,我只看到两个选项,都很不愉快:
编辑/var/lib/dpkg/info/brmfc7340lpr.postrm脚本,然后注释掉调用/etc/init.d/lpd start
(或restart或stop)的行(例如,只需将其替换为/bin/true)。另一种选择是仅exit 0作为脚本中的第一个非注释行。这将是我的最爱,但需要对编辑 shell 脚本有一点信心。
安装lpr,清除brmfc6340lpr包,清除lpr:这需要一点注意,因为它lpr与默认的 Ubuntu 打印机假脱机系统 CUPS 冲突:
一种。sudo aptitude install lpr(这将删除cups-bsd并
ubuntu-desktop作为副作用)
湾 sudo aptitude purge brmfc7340lpr lpr(现在应该可以工作)
C。sudo aptitude install cups-bsd ubuntu-desktop(将系统恢复到原来的状态)
| 归档时间: |
|
| 查看次数: |
4338 次 |
| 最近记录: |