最近我想删除 linux 的键盘配置应用程序,所以我输入了
sudo apt-get remove keyboard-configuration
它提示我是否要删除一堆软件包(17 MB),现在知道了 Debian 的内部工作,我照做了。下次我重新启动机器时,它不再启动到 os gui。相反,我被引导到一个 shell 界面。请看这张图片:
我将如何排除故障以找到原因?我将如何解决它?发行版是 Debian。
编辑:根据 apt 日志,删除了以下内容:
我最初使用此处找到的 MSI 在我们的组织中部署了 Python 3.8.1(如果相关,则通过 WSUS Package Publisher)。我使用 WSUS Package Publisher 安装了这些 MSI,并为每个 MSI 使用以下命令:
msiexec.exe /i core.msi /qn /norestart ALLUSERS=1
不幸的是,由于某种原因,这对我造成了许多问题,这些问题似乎都指向 ALLUSERS=1 被忽略,可能是由于安装程序缺乏提升(未出现在已安装的应用程序列表中,未通过 py 出现 - 0 列表)。令人沮丧的是,在我们意识到这些问题之前,这些都被意外地部署到了每个人身上。
要清理,我现在需要卸载这些 MSI。在受影响的机器上右键单击这些 MSI 并单击“卸载”可以正常工作 - 我会看到“您确定要卸载吗?” 提示,然后是提升请求,然后按预期卸载。
但是,因为我试图默默地这样做,以便我可以推出它。这是我试图通过提升的 shell 运行的命令:
msiexec.exe /x .\core.msi /qn
什么都没发生。我可以在任务管理器中看到 msiexec.exe 正在运行而没有任何活动,所以我的感觉是它正在达到“你确定吗?” 提示并卡在该提示上。
如何在静默卸载期间绕过此提示?
客户提供了一个 Windows Server 2012R2 实例用作我们的服务器。今天早上(7 月 25 日)我重新连接到盒子以更改我的密码,并立即提示 Java 安装成功并卸载旧版本的 Java。
这是令人震惊的,因为我们的服务器应用程序是基于 Java 的,并且当前运行在旧版本的 Java 上(这对我们的目的来说很好),如果您删除它正在使用的版本,卸载旧版本的 Java 可能会导致我们的服务器应用程序失败!
当然,我拒绝删除旧版本的 Java,但我和我的同事对我什至被提示感到不安。如果其他人在不知道我们的 Java 依赖关系的情况下登录,他们可能会删除旧版本。
我检查了我的 Java 更新设置,发现它被设置为检查,但在下载之前会提示。(因为我什至禁用了检查。)
我们进一步调查并在事件查看器中发现,在 7 月 20 日中午左右,盒子上安装了新版本的 Java(8 更新 101),显然我已经完成了(或者使用我的用户 ID 完成了)。但是,我们知道我没有这样做,因为那天我在黄石国家公园度假,没有网络!我的用户 ID 是具有管理员权限的 AD 帐户,但名为“smmccants”并且没有共享密码。我确实在服务器上运行了一个会话(我通常断开连接而不是注销)。
今天早上(2016 年 7 月 25 日上午 10:00 之前)重新连接并与 Java 对话框交互时,我无法在事件查看器中找到任何有趣的东西。
我们想了解发生了什么,并在未来防止它发生。关于这如何自动发生以及我们应该在哪里寻找线索的任何想法?
以下是我在 EventViewer 中找到的日志。
2016 年 7 月 20 日上午 11:59:44 来自事件查看器(来源:MsiInstaller):
开始 Windows 安装程序事务:C:\Users\smmccants\AppData\LocalLow\Oracle\Java\jre1.8.0_101\jre1.8.0_101full.msi 客户端进程 ID:87064
来自 MsiInstaller 于 2016 年 7 月 20 日上午 12:00:29:
产品:Java 8 Update 101 -- 安装成功完成
-
Windows Installer 安装的产品。产品名称:Java 8 Update 101。产品版本:8.0.1010.13。产品语言:1033 制造商:甲骨文公司。安装成功或错误状态:0。
-
结束 Windows 安装程序事务:C:\Users\smmccants\AppData\LocalLow\Oracle\Java\jre1.8.0_101\jre1.8.0_101full.msi。客户端进程 ID:87064
-
开始 Windows Installer 事务:{4A03706f-666A-4037-7777-5F2748764D10}。客户端进程 ID:87064
然后从 RestartManager (不管是什么......):
开始会话 0 - 2016-07-20T17:00:29.904899600Z
最后,我们得到一个新的时间戳 7/20/16 12:00:39 和 MsiInstaller 报告:
产品:Java Auto Updater -- 删除成功完成。
谁下令删除,他们是如何通过我的用户帐户进行删除的?可能是 Java 8 Update 101 安装过程的一部分。
Windows Installer 删除了该产品。产品名称:Java 自动更新程序。产品版本:2.8.77.3 产品语言:1033 制造商:Oracle Corporation。删除成功或错误状态:0。
-
结束 Windows 安装程序事务:{4A03706f-666A-4037-7777-5F2748764D10}。客户端进程 ID:87064
-
开始 Windows 安装程序事务:C:\Users\smmccants\AppData\LocalLow\Oracle\Java\jre1.8.0_101\au.msi。客户端进程 ID:87064
现在中午 12:00:40
产品:Java Auto Updater -- 安装成功完成。
-
Windows Installer 安装了产品。产品名称:Java 自动更新程序。产品版本 2.8.101.13。产品语言:1033。制造商:甲骨文公司。安装成功或错误状态:0。
-
结束 Windows 安装程序事务:C:\Users\smccants\AppData\LocalLow\Oracle\Java\jre1.8.0_101\au.msi。客户端进程 ID:87064。
-
开始 Windows 安装程序事务:{26A24AE4-039D-4Ca4-87B4-2F83218077F0}。客户端进程 ID:87064
现在我们倒退一秒到下午 12:00:39 来获取来自 RestartManager 的一条消息:
结束会话 0 开始于 2016-07-20T17:00:29.904899600Z
现在在下午 12:00:40 重新启动管理器:
开始会话 0 - 2016-07-20T17:00:40.326806900Z
-
结束会话 0 开始于 2016-07-20T17:00:29.904899600Z
现在我们在下午 12:01:07 看到真正可怕的 MsiInstaller 消息:
产品:Java 8 Update 77 -- 删除成功完成。
-
Windows Installer 删除了该产品。产品名称:Java 8 Update 77。产品版本:8.0.770.3。产品语言:1033。制造商:甲骨文公司。删除成功或错误状态:0。
下一条消息记录在 SYSTEM 用户下,而不是我。
结束 Windows 安装程序事务:{26A24AE4-039D-4Ca4-87B4-2F83218077F0}。客户端进程 ID:87064
这就是我发现的全部。
我试图从源代码安装 php5,它工作...
然后由于某种原因需要安装官方数据包,所以我尝试了make卸载,令我惊讶的是有这样的make卸载......所以我尝试手动删除所有已安装的文件。
然后安装了官方的 debian 软件包,它工作正常......直到我需要安装 sqlite 模块,这给了我以下错误:
php --version
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/pdo_sqlite.so' - /usr/lib/php5/20090626/pdo_sqlite.so: undefined symbol: php_pdo_register_driver in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/sqlite.so' - /usr/lib/php5/20090626/sqlite.so: undefined symbol: php_pdo_register_driver in Unknown on line 0
PHP 5.3.1-5 with Suhosin-Patch (cli) (built: Feb 22 2010 22:46:05)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
所以我记得我做过手动安装,我认为安装了一些旧的lib导致了这个问题,不好的是php5的源代码上没有这样的make卸载......
php-5.2.13 > make uninstall
make: *** No rule to make target `uninstall'. Stop.
我尝试通过 aptitude 重新安装和清除所有与 php 相关的软件包,但没有成功。
操作系统:Debian 挤压。
uname -a Linux 桌面 2.6.32-trunk-amd64 #1 SMP Sun Jan 10 22:40:40 UTC 2010 x86_64 GNU/Linux
知道如何解决吗?
我想通过调用 bat 文件来卸载软件。它必须是自动的,在卸载过程中无需输入任何参数。如何制作能够通过名称卸载软件的bat文件?
PS:我知道使用 WMI 的完美方法,但它需要用户输入:
WMIC
product where name="software" call uninstall
我已经在 Windows Server 2008 上安装了 Dell Openmanage Server Agent 4.2.2。我需要更新的版本,所以我需要先安装这个版本。但是,在一些指向不存在的源的注册表引用之外,几乎没有或根本没有安装它的痕迹。例如,没有程序文件的痕迹或 Prgrams And Features 中的条目。尽管如此,安装新版本仍然会出现需要首先删除的旧版本。当我尝试安装 4.2.2 版进行修复并最终将其删除时,它会出现错误:
Dell Openmanage 服务器代理 - 错误
测试机器类型时遇到错误。打开所需的 .DLL 句柄失败。Dell Openmanage Server Agent 无法继续安装。安装程序现在将退出。
我没有找到任何使用错误消息的不同部分作为搜索词的内容。