Jon*_*een 8 permissions apt windows bash
我在 Windows 上使用 Ubuntu,并且已经有一段时间了。/etc/debian_version将其命名为buster/sid. 由于最近怀疑磁盘损坏,/usr/lib/x86_64-linux-gnu/libapt-private.so.0.0.0似乎已被一个仅包含(二进制)零的相同大小的文件所取代。
当然,这会破坏apt并阻止其自我修复。
同事给了我一份相同文件的副本。但是,我找不到替换文件系统中的方法。即使bash使用 Windows 管理员权限启动,然后在该 shell 中获取 root 权限,也不允许我重命名或替换文件。
非常不鼓励尝试从 Windows 工具(例如文件资源管理器和cmdshell)更改这些文件- 但是,即使cmd以管理员权限运行也会给“ Access is denied.”
如何在 Ubuntu for Windows 下替换这个库文件?甚至有可能吗?Google 和 StackExchange 搜索没有帮助。
因此,由于 Windows Defender 将我检测libapt-private.so.0.0.0为木马程序,我的 WSL 被破坏了。[在此处插入具有讽刺意味的评论]
首先,最烦人的是每次尝试删除或移动库时都会出现“权限被拒绝”错误。为了防止这种情况发生,请确保您以管理员身份运行:从提升的 cmd/powershell 打开您的 WSL shell并在那里工作。
接下来是(几乎)Imaginecat22的答案的实现。
找到你的版本 apt
$ dpkg -l apt
[. . .]
||/ Name Version Architecture Description
+++-=================================-=====================-=====================-=======================================================================
ii apt 1.6.11 amd64 commandline package manager
Run Code Online (Sandbox Code Playgroud)
写下 的值Architecture。
下载.deb包
大多数包都可以通过Ubuntu 包搜索找到。
并非所有版本都可用,因此您可能需要手动下载:
使用网络浏览器打开:
https://launchpad.net/ubuntu/+source/apt/<VERSION>/
替换<VERSION>为Version步骤 1中返回的值,例如:
找到Builds部分并选择与Architecture步骤 1中的值匹配的构建。
复制 URL 以下载文件apt_<VERSION>_<ARCHITECTURE>.deb。从您的 WSL Linux shell 下载包:
$ wget https://launchpad.net/ubuntu/+source/apt/1.6.11/+build/16829590/+files/apt_1.6.11_amd64.deb
Run Code Online (Sandbox Code Playgroud)使用 dpkg 安装包
$ dpkg -i apt_1.6.11_amd64.deb
Run Code Online (Sandbox Code Playgroud)应该用它覆盖您以前的版本和损坏的库。
| 归档时间: |
|
| 查看次数: |
2608 次 |
| 最近记录: |