是否可以在 ubuntu 18.04 中安装 gnome 3.29.92 或 3.30?
有可用的 PPA 吗?
更新:https://mail.gnome.org/archives/devel-announce-list/2018-September/msg00003.html
答案1
是的,如果您愿意做一些非常规的事情并处理更多的复杂性、潜在风险和兼容性问题,那么您可以从任何 ubuntu 版本升级您想要的任何软件。
我也无法升级到 18.10,因为它会破坏我的一些基本软件。另一方面,Gnome 3.30 在稳定性和性能方面远远优于 3.28 和 3.26。对于 Gnome Wayland 来说尤其如此,从 3.30 开始,它从灾难性变为真正可用......
以下是我所做工作的大致内容:
- 临时修改 apt repo 列表以使用 cosmic 的 repos 而不是 bionic。
- 仅将 gnome shell 更新至 3.30 以及稳定运行所需的文件,仅此而已。
- 列出2中更新的文件的列表。
- 撤消步骤 1,以便机器上的其余软件包可以使用 LTS 更新
- 其余软件包可以正常更新,但我在步骤 2 中更新的文件需要通过使用步骤 3 中创建的列表构建的脚本手动更新。
我已经制作了一个非常详尽的教程来教你如何操作。如果你仔细按照教程操作,应该不会遇到任何问题,但要知道,没有任何保证,而且你正在操作的东西可能会破坏安装,所以在执行此操作之前请备份你的安装,或者在虚拟机上执行此操作以查看效果如何。
详细说明(数字与上面的列表不对应):
准备
除非我另有说明,否则假设所有命令都具有提升的权限,并且我不想输入sudo
100 次。要进入sudo
模式,请输入:
sudo -H bash #or sudo su
在执行任何操作之前,请先运行以下命令确保一切正常:
apt-get --fix-broken install
步骤1
复制原件并临时修改 apt 存储库列表,以便它检查 Cosmic 存储库中的更新而不是 Bionic 存储库中的更新:
cp /etc/apt/sources.list /etc/apt/sources.list.bionic
#make a cosmic version of the apt list
cat /etc/apt/sources.list.bionic| sed 's/bionic/cosmic/g' > /etc/apt/sources.list.cosmic
# set the apt list to cosmic
cp /etc/apt/sources.list.cosmic /etc/apt/sources.list
# backup your two list files to another directory - just in case some smart ass updater decides to delete them.
mkdir /etc/apt.bak
cp /etc/apt/sources.* /etc/apt.bak
第2步
更新软件包列表并检查可升级的软件包:
apt update
apt list --upgradable > upgradable
步骤3
使用grep
,对数字 3.30 和 3.28 进行基于文本的搜索。这只会显示与 Gnome Shell 相关的更新。此外,您可以搜索与 Wayland(必不可少!)和glib
、gir
、gtk
(由您决定)相关的软件包。我真的不关心 Xorg,因为我认为它非常不安全,但是如果您想使用gnome-x11
,您也可以搜索xorg
要更新的软件包。这种方法背后的想法是避免将太多软件包升级到 Cosmic 分支,因为 Cosmic 只有 9 个月的修复,而 Bionic 将有 5-10 年的安全更新和修复,因此对您有利的是将尽可能多的系统保留在 Bionic 系列上。
#updates directly related to 3.30 or needed by it.
cat upgradable | grep "3.30" | grep --color=NEVER "3.28" > upgradable-3.30 #this got me 78 packages
cat upgradable | grep --color=NEVER -i "nautilus" >> upgradable-3.30 #if you endup choosing to do step 9, don't do this
cat upgradable | grep --color=NEVER -i "gdm" >> upgradable-3.30
cat upgradable | grep --color=NEVER -i "gnome-shell-extension-appindicator" >> upgradable-3.30
cat upgradable | grep --color=NEVER -i "gnome-shell-extension-ubuntu-dock" >> upgradable-3.30
cat upgradable | grep --color=NEVER -i "gvfs" >> upgradable-3.30
cat upgradable | grep --color=NEVER -i "network-manager" >> upgradable-3.30
#wayland
cat upgradable | grep --color=NEVER -i "wayland" > upgradable-wayland
#x11
cat upgradable | grep --color=NEVER -i "xorg" > upgradable-xorg
cat upgradable | grep --color=NEVER -i "x11" >> upgradable-xorg
不确定下面的升级有多必要。我猜想如果我安装 中的文件,Gnome Shell 3.30 正常运行所需的库包将会自动下载uprgradable-3.30
。我想说,试试不用它们,如果你觉得它不稳定,就安装它们。
cat upgradable | grep --color=NEVER -i "gnome-bluetooth" >> upgradable-3.30 #version change doesn't seem very for this one, maybe keep it on bionic
cat upgradable | grep --color=NEVER -i "gnome-keyring" >> upgradable-3.30 #version change doesn't seem very for this one, maybe keep it on bionic
cat upgradable | grep --color=NEVER -i "gnome" >> upgradable-3.30
cat upgradable | grep --color=NEVER -i "gtk" > upgradable-libs
cat upgradable | grep --color=NEVER -i "glib" >> upgradable-libs
cat upgradable | grep --color=NEVER -i "gir" >> upgradable-libs
每个upgradable
列表看起来应该像这样:
adwaita-icon-theme/cosmic,cosmic 3.30.0-0ubuntu1 all [可升级自:3.28.0-1ubuntu1] baobab/cosmic 3.30.0-1 amd64 [可升级自:3.28.0-1] cheese/cosmic 3.30.0-0ubuntu1 amd64 [可升级自:3.28.0-1ubuntu1] cheese-common/cosmic,cosmic 3.30.0-0ubuntu1 all [可升级自:3.28.0-1ubuntu1] 等等... 等等... 等等...
你应该最多升级 1500 个软件包中的 100 到 250 个
步骤4
使用sed
,重新格式化步骤 3 中创建的列表,使其变为:
adwaita-icon-theme/cosmic,cosmic 3.30.0-0ubuntu1 all [可升级自:3.28.0-1ubuntu1] baobab/cosmic 3.30.0-1 amd64 [可升级自:3.28.0-1] cheese/cosmic 3.30.0-0ubuntu1 amd64 [可升级自:3.28.0-1ubuntu1] cheese-common/cosmic,cosmic 3.30.0-0ubuntu1 all [可升级自:3.28.0-1ubuntu1] cheese-common/cosmic,cosmic 3.30.0-0ubuntu1 all [可升级自:3.28.0-1ubuntu1] 等等...等等...
变成这样:
apt-get install --assume-yes adwaita-icon-theme baobab cheese cheese-common 等等...等等...等等..
cat upgradable-3.30 | sed 's/\[//g'| sed 's/\/cosmic/\[/g'| sed 's/), /\] /g'| sed 's/)/\]/g'| sed -e 's/\[\([^]]*\)\]//g'|sed '/^\s*$/d'|sed "s/^/apt-get install --assume-yes /g" > up-3.30
cat upgradable-wayland | sed 's/\[//g'| sed 's/\/cosmic/\[/g'| sed 's/), /\] /g'| sed 's/)/\]/g'| sed -e 's/\[\([^]]*\)\]//g'|sed '/^\s*$/d'|sed "s/^/apt-get install --assume-yes /g" > up-wayland
#again, xorg is optional for those using it, don't upgrade it if you don't use it. You want to keep as many files as possible on the LTS track.
cat upgradable-xorg | sed 's/\[//g'| sed 's/\/cosmic/\[/g'| sed 's/), /\] /g'| sed 's/)/\]/g'| sed -e 's/\[\([^]]*\)\]//g'|sed '/^\s*$/d'|sed "s/^/apt-get install --assume-yes /g" > up-xorg
#same for the libs
cat upgradable-libs | sed 's/\[//g'| sed 's/\/cosmic/\[/g'| sed 's/), /\] /g'| sed 's/)/\]/g'| sed -e 's/\[\([^]]*\)\]//g'|sed '/^\s*$/d'|sed "s/^/apt-get install --assume-yes /g" > up-libs
使新创建的脚本可执行
chmod +x up-*
步骤5
在开始之前记下时间和日期,我使用 4 的结果来更新需要更新的包:
date > upgrade-start
./up-3.30
./up-wayland
#etc...
#Install the Yaru themes (they're not included in 18.04 and are need in 3.30)
apt-get install yaru-theme-*
#as regular user (non-sudo), activate themes via:
gsettings set org.gnome.desktop.interface gtk-theme 'Yaru' #or 'Yaru.dark'
gsettings set org.gnome.desktop.interface cursor-theme 'Yaru'
gsettings set org.gnome.desktop.interface icon-theme 'Yaru'
gsettings set org.gnome.desktop.sound theme-name 'Yaru'
#or use gnome-tweaks to do it
#If you get any errors, run
apt-get --fix-broken install
date > upgrade-finished
#reboot your machine
reboot
第 6 步
在第 5 步中升级的文件不再位于 LTS 更新轨道上。这意味着,当第 1 步被撤消并启动更新时,常规 Bionic 软件包将更新,但这些软件包将始终被视为较新的软件包。此外,第 5 步中更新或安装的任何依赖项都将处于相同的情况。更新这些软件包需要创建一个脚本来手动更新它们。
让我们使用apt
历史日志文件来找出哪些文件需要手动更新:
cp /var/log/apt/history.log ./cosmics-upgrade.log
执行并删除之前和之后的nano cosmics-upgrade.log
所有条目(在步骤 5 中)。upgrade-start
upgrade-finished
现在,让我们编写一个脚本来手动升级非 LTS 软件包:
echo '#!/bin/bash' > update-cosmics
echo 'cp /etc/apt/sources.list.cosmic /etc/apt/sources.list;apt update' >> update-cosmics
下一步将把sed
日志格式化为我们可以放入update-cosmics
文件中的内容(与步骤 4 中的想法相同)。
cat cosmics-upgrade.log | sed 's/([^)]*)//g'| sed 's/,//g'|sed "s/End-Date:/# End-Date:/g"|sed "s/Start-Date:/\n\n\n# Start-Date:/g"|sed "s/Commandline: /# Commandline: /g"|sed 's/Install: /\napt-get install --assume-yes /g'|sed 's/Update: /\napt-get install --assume-yes /g'|sed 's/Remove: /\napt-get remove --assume-yes /g'|sed 's/Upgrade: /\napt-get install --assume-yes /g'|sed "s/Requested-By:/\n\n\n# Requested-By:/g" >> update-cosmics
最后,在最末尾添加以下行update-cosmics
:
echo 'cp /etc/apt/sources.list.bionic /etc/apt/sources.list;apt update' >> update-cosmics
使脚本可执行并将其移动到/usr/bin
chmod +x update-cosmics
cp update-cosmics /usr/bin
步骤7
撤消步骤 1 以允许您的系统正常执行更新。
cp /etc/apt/sources.list.bionic /etc/apt/sources.list;apt update
步骤8
用于update-cosmics
临时切换到 Cosmic 存储库并更新 Cosmic 轨道上的软件包。您可以手动运行它或使用 安排它cron
。
第 9 步:奖励回合:放弃 Nautilus 3.26
这是一个偏好问题:如果您不使用桌面图标,或者想要尝试桌面图标扩展,您可以摆脱过时的 Nautilus 3.26,Ubuntu 已将其分叉为改进很多的 Nautilus 3.30。我喜欢 3.30,因为它对触摸屏的支持好得多,而且 3.26 的桌面图标实现会注入 X11 层(实际上是 XWayland)——即使您正在运行 Wayland 会话。桌面图标 Gnome Shell 扩展仅适用于 3.30。它大约有 80% 的功能完成,但不会将 X11 层注入您的 Wayland 会话。
可以通过从 Debian 的服务器下载 deb 文件来获取 Nautilus 3.30:
wget http://ftp.us.debian.org/debian/pool/main/n/nautilus/nautilus_3.30.4-1_amd64.deb
wget http://ftp.us.debian.org/debian/pool/main/n/nautilus/libnautilus-extension1a_3.30.4-1_amd64.deb
wget http://ftp.us.debian.org/debian/pool/main/n/nautilus/nautilus-data_3.30.4-1_all.deb
使用dpkg
来安装它们:
dpkg -i *nautilus*.deb
可以找到 Nautilus 的未来更新这里并且您必须手动安装它们(单击修改日期两次以查看最新的 debs)。
如果您决定继续使用 Debian 3.30 Nautilus,则必须从update-cosmics
我们之前生成的脚本中删除这 3 个包。您还必须执行以下操作:
apt-mark hold libnautilus-extension1a nautilus-data nautilus
这避免了 Ubuntu 的更新程序意外地将 Nautilus 从 3.30 “升级”回 3.26(是的,它实际上无法分辨 3.30 比 3.26 更高)。
要撤消此操作,您只需执行以下操作:
apt-mark unhold libnautilus-extension1a nautilus-data nautilus
apt-get install nautilus nautilus-data libnautilus-extension1a #and unstill the desktop-icons extension
答案2
好吧,我已经成功使用 gnome 团队提供的 JHBuild 工具在 Ubuntu 18.04 上编译了它!除了一些依赖项和小修改外,其余的都使用默认的 bionic 安装就可以了。
唯一无法编译的模块是ibus-anthy
,并且我收到的错误与依赖项无关:
anthygcontext.c:55:5: error: ‘g_type_class_add_private’ is deprecated
我尝试了一些应用程序,例如 gedit,它们可以运行,但我还没有测试整个系统以查看它是否真正运行!
我回家后会报告...
大家的好消息,编译时出现了一些问题,现在我已经设法解决了......
到目前为止,gnome 3-30 会话已完全启动,应用程序运行...我现在面临的唯一问题是文件夹没有任何图标!
如果我能够修复它并且没有出现新的问题,我将在这里发布一个指南!
答案3
只是给你一个更新!花了几天时间摆弄 jhbuild 之后,我还是搞不懂为什么在运行新编译的 gnome-shell 时主要应用程序无法在新用户帐户下打开。
我已经在这里请求帮助,但尚未得到回复:
https://gitlab.gnome.org/GNOME/jhbuild/issues/4
同时,我刚刚安装了 Ubuntu 18.10 每日构建版,我应该说使用 gnome-shell 3.30 非常稳定和流畅!到目前为止,我发现的唯一错误是 Ubuntu 软件中心有时行为异常,需要终止才能响应!我肯定会继续使用 Ubuntu 18.10,接收每日更新也将确保更高的稳定性。
我还从这个 ppa 更新了 gjs,因为据说它是 Ubuntu 18.04 上 gnome-shell 滞后的原因!
https://launchpad.net/~gnome3-team/+archive/ubuntu/gnome3-staging
最后的话,gnome-shell 3.30 和 gjs 1.54 的性能有望明显提升,但不要指望像 windows 那样流畅!
答案4
是的,有一个用于升级到最新的 Gnome Shell 的 PPA。
运行以下命令:
sudo add-apt-repository ppa:gnome3-team/gnome3
sudo add-apt-repository ppa:gnome3-team/gnome3-staging
sudo apt-get update
sudo apt-get dist-upgrade
完成后,重新启动系统。
重要提示:此 PPA 主要用于测试目的。无论如何,您应坚持使用当前 Ubuntu 版本提供的 GNOME Shell 稳定版本。如果在升级后遇到一些问题,您可以通过清除以下内容恢复所有内容:
sudo ppa-purge ppa:gnome3-team/gnome3-staging
sudo ppa-purge ppa:gnome3-team/gnome3
sudo apt-get install ubuntu-gnome-desktop^
再次重新启动系统。
来源:Ubuntu 维基百科