在 ubuntu 12.10 上安装 Samba 失败

Ayy*_*yaz 5 package-management samba

我试图安装 samba 以访问通过办公网络连接的 windows pc 上的共享打印机,以下响应来自终端。请指导我如何安装 Samba 或任何其他替代方案。


crm@crm-HP-G62-Notebook-PC:~$ sudo apt-get install samba
[sudo] password for crm: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 samba : Depends: samba-common (= 2:3.6.6-3ubuntu4) but 2:3.6.6-3ubuntu5 is to be installed
         Depends: libwbclient0 (= 2:3.6.6-3ubuntu4) but 2:3.6.6-3ubuntu5 is to be installed
         Recommends: tdb-tools but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
crm@crm-HP-G62-Notebook-PC:~$
Run Code Online (Sandbox Code Playgroud)

小智 1

跑步:

sudo apt-get install --fix-broken && sudo apt-get autoremove && sudo apt-get update && sudo apt-get install samba
Run Code Online (Sandbox Code Playgroud)

如果不成功,则删除那些依赖关系未满足的特定包:

sudo apt-get remove samba-common libwbclient0 tdb-tools
Run Code Online (Sandbox Code Playgroud)

如果不成功,那么您必须进行一些手动操作。

samba-common (= 2:3.6.6-3ubuntu4)Ubuntu 12.10 的官方 Ubuntu存储库中不存在。您可以使用包含以下内容的旧存储库samba-common (= 2:3.6.6-3ubuntu4)

所以你必须通过以下方式找到该存储库

apt-cache policy samba-common
Run Code Online (Sandbox Code Playgroud)

结果中,首先提到的 PPA 是导致问题的原因。

您需要确定它是一个有价值的存储库还是无用的存储库。这意味着它是否安装了您已安装的重要软件包。为此,运行:

aptitude search "?origin <ppa name> ?installed"
Run Code Online (Sandbox Code Playgroud)

** 替换<ppa name>为 PPA 名称(省略ppa:

这将列出已从该 PPA 安装的软件包。

然后,如果它是包含其他重要包的有价值的存储库,则必须进行 固定

对于这次运行:

gksudo gedit /etc/apt/preferences
Run Code Online (Sandbox Code Playgroud)

将以下行添加到文件并保存。

Package: samba-common
Pin: release o=Ubuntu
Pin-Priority: 200 

Package: samba-common
Pin: release o=LP-PPA-<ppa name>
Pin-Priority: 100
Run Code Online (Sandbox Code Playgroud)

** 替换<ppa name>为 PPA 名称(省略ppa:

然后,再次尝试安装。

如果是无用的 PPA,请删除 PPA,然后更新。

sudo add-apt-repository --remove <PPA Name> && sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

然后尝试安装。


小智 0

拥有 /etc/samba/smb.conf 的包是

samba-common
Run Code Online (Sandbox Code Playgroud)

如果 /etc/samba/smb.conf 丢失,您应该能够从 /usr/share/samba/smb.conf 复制配置,然后运行

sudo dpkg --configure samba-common
Run Code Online (Sandbox Code Playgroud)