我在两个独立的分区上安装了两个 ubuntu,一个是 Unity,一个是 Gnome-Shell。它们都使用一个通用的加密 /home 分区。这种设置在过去对我来说效果很好,但出于某种原因,我最近遇到了很多包管理问题。当我在 Unity 分区上使用软件中心时,它显示我安装了 gnome3 ppa,而它只安装在我的另一个分区上。这两个分区现在共享相同的 apt-get 数据吗?这不可能。如果是这样,我该如何解决这个问题?
答案1
我想你可以通过移动以下目录来解决你的问题
~/.config/software-center
~/.cache/software-center
在你家外面的某个地方。
您有两种选择:
- 继续在两个安装中使用这些目录的现有内容;
- 从空内容开始。
我认为建议采用第二种方案,因为它的效果与启动软件中心首次。
现在关闭软件中心,如果它正在运行,并对这些目录进行预防性备份,以防出现问题。
第一种选择
因此,从第一个替代方案开始,请执行以下操作。
登录第一的安装并执行:
# Create a local copy of 'software-center' dirs
sudo mkdir -p /usr/local/software-center/{.config,.cache}
sudo chown -R $USER:$USER /usr/local/software-center
cp -a ~/.config/software-center /usr/local/software-center/.config/
cp -a ~/.cache/software-center /usr/local/software-center/.cache/
登录第二安装并执行:
# Same as before
# Create a local copy of 'software-center' dirs
sudo mkdir -p /usr/local/software-center/{.config,.cache}
sudo chown -R $USER:$USER /usr/local/software-center
cp -a ~/.config/software-center /usr/local/software-center/.config/
cp -a ~/.cache/software-center /usr/local/software-center/.cache/
以下命令在 HOME 上操作,应仅在两个安装中的一个上执行,并且它们将对两个安装都有效。
# Remove the original common copy
rm -r ~/.config/software-center
rm -r ~/.cache/software-center
# Link local copy to where 'software-center' expect to find dirs
ln -s /usr/local/software-center/.config/software-center ~/.config/software-center
ln -s /usr/local/software-center/.cache/software-center ~/.cache/software-center
现在两个安装指向不同版本的目录。
第二种选择
对于第二种选择,您可以用cp
两个命令替换这四个命令mkdir
,每个安装一个命令:
mkdir /usr/local/software-center/{.config,.cache}/software-center
所有其他命令保持不变。
我选择它/usr/local/software-center
作为本地副本的基本目录,但您可以选择您想要的每个目录,只要它不属于主目录。