详细说明(数字与上面的列表不对应):

详细说明(数字与上面的列表不对应):

是否可以在 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 开始,它从灾难性变为真正可用......

以下是我所做工作的大致内容:

  1. 临时修改 apt repo 列表以使用 cosmic 的 repos 而不是 bionic。
  2. 仅将 gnome shell 更新至 3.30 以及稳定运行所需的文件,仅此而已。
  3. 列出2中更新的文件的列表。
  4. 撤消步骤 1,以便机器上的其余软件包可以使用 LTS 更新
  5. 其余软件包可以正常更新,但我在步骤 2 中更新的文件需要通过使用步骤 3 中创建的列表构建的脚本手动更新。

我已经制作了一个非常详尽的教程来教你如何操作。如果你仔细按照教程操作,应该不会遇到任何问题,但要知道,没有任何保证,而且你正在操作的东西可能会破坏安装,所以在执行此操作之前请备份你的安装,或者在虚拟机上执行此操作以查看效果如何。


详细说明(数字与上面的列表不对应):

准备

除非我另有说明,否则假设所有命令都具有提升的权限,并且我不想输入sudo100 次。要进入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(必不可少!)和glibgirgtk(由您决定)相关的软件包。我真的不关心 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-startupgrade-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 维基百科

相关内容