分类 技术 下的文章

大多数用户发现使用标准流程升级从一个 Fedora 版本升级到下一个很简单。但是,Fedora 升级也不可避免地会遇到许多特殊情况。本文介绍了使用 DNF 和逻辑卷管理(LVM)进行升级的一种方法,以便在出现问题时保留可引导备份。这个例子是将 Fedora 26 系统升级到 Fedora 28。

此处展示的过程比标准升级过程更复杂。在使用此过程之前,你应该充分掌握 LVM 的工作原理。如果没有适当的技能和细心,你可能会丢失数据和/或被迫重新安装系统!如果你不知道自己在做什么,那么强烈建议你坚持只使用得到支持的升级方法。

准备系统

在开始之前,请确保你的现有系统已完全更新。

$ sudo dnf update
$ sudo systemctl reboot # 或采用 GUI 方式

检查你的根文件系统是否是通过 LVM 挂载的。

$ df /
Filesystem              1K-blocks   Used        Available   Use%    Mounted on
/dev/mapper/vg_sdg-f26  20511312    14879816    4566536     77%     /

$ sudo lvs
LV        VG            Attr        LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
f22       vg_sdg        -wi-ao----  15.00g
f24_64    vg_sdg        -wi-ao----  20.00g
f26       vg_sdg        -wi-ao----  20.00g
home      vg_sdg        -wi-ao---- 100.00g
mockcache vg_sdg        -wi-ao----  10.00g
swap      vg_sdg        -wi-ao----   4.00g
test      vg_sdg        -wi-a-----   1.00g
vg_vm     vg_sdg        -wi-ao----  20.00g

如果你在安装 Fedora 时使用了默认值,你可能会发现根文件系统挂载在名为 root 的逻辑卷(LV)上。卷组(VG)的名称可能会有所不同。看看根卷的总大小。在该示例中,根文件系统名为 f26,大小为 20G

接下来,确保 LVM 中有足够的可用空间。

$ sudo vgs
VG      #PV #LV #SN Attr    VSize   VFree
vg_sdg  1   8   0   wz--n-  232.39g 42.39g

该系统有足够的可用空间,可以为升级后的 Fedora 28 的根卷分配 20G 的逻辑卷。如果你使用的是默认安装,则你的 LVM 中将没有可用空间。对 LVM 的一般性管理超出了本文的范围,但这里有一些情形下可能采取的方法:

1、/home 在自己的逻辑卷,而且 /home 中有大量空闲空间。

你可以从图形界面中注销并切换到文本控制台,以 root 用户身份登录。然后你可以卸载 /home,并使用 lvreduce -r 调整大小并重新分配 /home 逻辑卷。你也可以从 现场镜像 Live image 启动(以便不使用 /home)并使用 gparted GUI 实用程序进行分区调整。

2、大多数 LVM 空间被分配给根卷,该文件系统中有大量可用空间。

你可以从现场镜像启动并使用 gparted GUI 实用程序来减少根卷的大小。此时也可以考虑将 /home 移动到另外的文件系统,但这超出了本文的范围。

3、大多数文件系统已满,但你有个已经不再需要逻辑卷。

你可以删除不需要的逻辑卷,释放卷组中的空间以进行此操作。

创建备份

首先,为升级后的系统分配新的逻辑卷。确保为系统的卷组(VG)使用正确的名称。在这个例子中它是 vg_sdg

$ sudo lvcreate -L20G -n f28 vg_sdg
Logical volume "f28" created.

接下来,创建当前根文件系统的快照。此示例创建名为 f26_s 的快照卷。

$ sync
$ sudo lvcreate -s -L1G -n f26_s vg_sdg/f26
Using default stripesize 64.00 KiB.
Logical volume "f26_s" created.

现在可以将快照复制到新逻辑卷。当你替换自己的卷名时,请确保目标正确。如果不小心,就会不可撤销地删除了数据。此外,请确保你从根卷的快照复制,而不是从你的现在的根卷。

$ sudo dd if=/dev/vg_sdg/f26_s of=/dev/vg_sdg/f28 bs=256k
81920+0 records in
81920+0 records out
21474836480 bytes (21 GB, 20 GiB) copied, 149.179 s, 144 MB/s

给新文件系统一个唯一的 UUID。这不是绝对必要的,但 UUID 应该是唯一的,因此这避免了未来的混淆。以下是在 ext4 根文件系统上的方法:

$ sudo e2fsck -f /dev/vg_sdg/f28
$ sudo tune2fs -U random /dev/vg_sdg/f28

然后删除不再需要的快照卷:

$ sudo lvremove vg_sdg/f26_s
Do you really want to remove active logical volume vg_sdg/f26_s? [y/n]: y
Logical volume "f26_s" successfully removed

如果你单独挂载了 /home,你可能希望在此处制作 /home 的快照。有时,升级的应用程序会进行与旧版 Fedora 版本不兼容的更改。如果需要,编辑根文件系统上的 /etc/fstab 文件以在 /home 上挂载快照。请记住,当快照已满时,它将消失!另外,你可能还希望给 /home 做个正常备份。

配置以使用新的根

首先,安装新的逻辑卷并备份现有的 GRUB 设置:

$ sudo mkdir /mnt/f28
$ sudo mount /dev/vg_sdg/f28 /mnt/f28
$ sudo mkdir /mnt/f28/f26
$ cd /boot/grub2
$ sudo cp -p grub.cfg grub.cfg.old

编辑 grub.conf 并在第一个菜单项 menuentry 之前添加这些,除非你已经有了:

menuentry 'Old boot menu' {
  configfile /grub2/grub.cfg.old
}

编辑 grub.conf 并更改默认菜单项以激活并挂载新的根文件系统。改变这一行:

linux16 /vmlinuz-4.16.11-100.fc26.x86_64 root=/dev/mapper/vg_sdg-f26 ro rd.lvm.lv=vg_sdg/f26 rd.lvm.lv=vg_sdg/swap rhgb quiet LANG=en_US.UTF-8

如你看到的这样。请记住使用你系统上的正确的卷组和逻辑卷条目名称!

linux16 /vmlinuz-4.16.11-100.fc26.x86_64 root=/dev/mapper/vg_sdg-f28 ro rd.lvm.lv=vg_sdg/f28 rd.lvm.lv=vg_sdg/swap rhgb quiet LANG=en_US.UTF-8

编辑 /mnt/f28/etc/default/grub 并改变在启动时激活的默认的根卷:

GRUB_CMDLINE_LINUX="rd.lvm.lv=vg_sdg/f28 rd.lvm.lv=vg_sdg/swap rhgb quiet"

编辑 /mnt/f28/etc/fstab,将挂载的根文件系统从旧的逻辑卷:

/dev/mapper/vg_sdg-f26 / ext4 defaults 1 1

改为新的:

/dev/mapper/vg_sdg-f28 / ext4 defaults 1 1

然后,出于参考的用途,只读挂载旧的根卷:

/dev/mapper/vg_sdg-f26 /f26 ext4 ro,nodev,noexec 0 0

如果你的根文件系统是通过 UUID 挂载的,你需要改变这个方式。如果你的根文件系统是 ext4 你可以这样做:

$ sudo e2label /dev/vg_sdg/f28 F28

现在编辑 /mnt/f28/etc/fstab 使用该卷标。改变该根文件系统的挂载行,像这样:

LABEL=F28 / ext4 defaults 1 1

重启与升级

重新启动,你的系统将使用新的根文件系统。它仍然是 Fedora 26,但是是带有新的逻辑卷名称的副本,并可以进行 dnf 系统升级!如果出现任何问题,请使用旧引导菜单引导回到你的工作系统,此过程可避免触及旧系统。

$ sudo systemctl reboot # or GUI equivalent
...
$ df / /f26
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg_sdg-f28 20511312 14903196 4543156 77% /
/dev/mapper/vg_sdg-f26 20511312 14866412 4579940 77% /f26

你可能希望验证使用旧的引导菜单确实可以让你回到挂载在旧的根文件系统上的根。

现在按照此维基页面中的说明进行操作。如果系统升级出现任何问题,你还会有一个可以重启回去的工作系统。

进一步的考虑

创建新的逻辑卷并将根卷的快照复制到其中的步骤可以使用通用脚本自动完成。它只需要新的逻辑卷的名称,因为现有根的大小和设备很容易确定。例如,可以输入以下命令:

$ sudo copyfs / f28

提供挂载点以进行复制可以更清楚地了解发生了什么,并且复制其他挂载点(例如 /home)可能很有用。


via: https://fedoramagazine.org/use-lvm-upgrade-fedora/

作者:Stuart D Gathman 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

树莓派 4 与其前代产品相比具有令人印象深刻的性能提升,而入门套件使其易于快速启动和运行。

当树莓派 4 在 6 月底宣布发布时,我没有迟疑,在发布的同一天就从 CanaKit 订购了两套树莓派 4 入门套件。1GB RAM 版本有现货,但 4GB 版本要在 7 月 19 日才能发货。由于我想两个都试试,这两个都订购了让它们一起发货。

 title=

这是我开箱我的树莓派 4 后所看到的。

电源

树莓派 4 使用 USB-C 连接器供电。虽然 USB-C 电缆现在非常普遍,但你的树莓派 4 可能不喜欢你的USB-C 线(至少对于树莓派 4 的第一版如此)。因此,除非你确切知道自己在做什么,否则我建议你订购含有官方树莓派充电器的入门套件。如果你想尝试手头的充电设备,那么该设备的输入是 100-240V ~ 50/60Hz 0.5A,输出为 5.1V - 3.0A。

 title=

键盘和鼠标

官方的键盘和鼠标是和入门套件是分开出售的,总价 25 美元,并不很便宜,因为你的这台树莓派电脑也才只有 35 到 55 美元。但树莓派徽标印在这个键盘上(而不是 Windows 徽标),并且外观相宜。键盘也是 USB 集线器,因此它允许你插入更多设备。我插入了我的 YubiKey 安全密钥,它运行得非常好。我会把键盘和鼠标分类为“值得拥有”而不是“必须拥有”。你的常规键盘和鼠标应该也可以正常工作。

 title= and mouse.")

 title=

Micro-HDMI 电缆

可能让一些人惊讶的是,与带有 Mini-HDMI 端口的树莓派 Zero 不同,树莓派 4 配备了 Micro-HDMI。它们不是同一个东西!因此,即使你手头有合适的 USB-C 线缆/电源适配器、鼠标和键盘,也很有可能需要使用 Micro-HDMI 转 HDMI 的线缆(或适配器)来将你的新树莓派接到显示器上。

外壳

树莓派的外壳已经有了很多年,这可能是树莓派基金会销售的第一批“官方”外围设备之一。有些人喜欢它们,而有些人不喜欢。我认为将一个树莓派放在一个盒子里可以更容易携带它,可以避免静电和针脚弯曲。

另一方面,把你的树莓派装在盒子里会使电路板过热。这款 CanaKit 入门套件还配备了处理器散热器,这可能有所帮助,因为较新的树莓派已经以运行相当热而闻名了。

 title=

Raspbian 和 NOOBS

入门套件附带的另一个东西是 microSD 卡,其中预装了树莓派 4 的 NOOBS 操作系统的正确版本。(我拿到的是 3.19 版,发布于 2019 年 6 月 24 日)。如果你是第一次使用树莓派并且不确定从哪里开始,这可以为你节省大量时间。入门套件中的 microSD 卡容量为 32GB。

插入 microSD 卡并连接所有电缆后,只需启动树莓派,引导进入 NOOBS,选择 Raspbian 发行版,然后等待安装。

 title=

我注意到在安装最新的 Raspbian 时有一些改进。(如果它们已经出现了一段时间,请原谅我 —— 自从树莓派 3 出现以来我没有对树莓派进行过全新安装。)其中一个是 Raspbian 会要求你在安装后的首次启动为你的帐户设置一个密码,另一个是它将运行软件更新(假设你有网络连接)。这些都是很大的改进,有助于保持你的树莓派更安全。我很希望能有一天在安装时看到加密 microSD 卡的选项。

 title=

 title=

运行非常顺畅!

结语

虽然 CanaKit 不是美国唯一授权的树莓派零售商,但我发现它的入门套件的价格物超所值。

到目前为止,我对树莓派 4 的性能提升印象深刻。我打算尝试用一整个工作日将它作为我唯一的计算机,我很快就会写一篇关于我探索了多远的后续文章。敬请关注!


via: https://opensource.com/article/19/8/unboxing-raspberry-pi-4

作者:Anderson Silva 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

SSLH - Share A Same Port For HTTPS And SSH

一些 ISP 和公司可能已经阻止了大多数端口,并且只允许少数特定端口(如端口 80 和 443)访问来加强其安全性。在这种情况下,我们别无选择,但同一个端口可以用于多个程序,比如 HTTPS 端口 443,很少被阻止。通过 SSL/SSH 多路复用器 SSLH 的帮助,它可以侦听端口 443 上的传入连接。更简单地说,SSLH 允许我们在 Linux 系统上的端口 443 上运行多个程序/服务。因此,你可以同时通过同一个端口同时使用 SSL 和 SSH。如果你遇到大多数端口被防火墙阻止的情况,你可以使用 SSLH 访问远程服务器。这个简短的教程描述了如何在类 Unix 操作系统中使用 SSLH 让 https、ssh 共享相同的端口。

SSLH:让 HTTPS、SSH 共享端口

安装 SSLH

大多数 Linux 发行版上 SSLH 都有软件包,因此你可以使用默认包管理器进行安装。

在 Debian、Ubuntu 及其衍生品上运行:

$ sudo apt-get install sslh

安装 SSLH 时,将提示你是要将 sslh 作为从 inetd 运行的服务,还是作为独立服务器运行。每种选择都有其自身的优点。如果每天只有少量连接,最好从 inetd 运行 sslh 以节省资源。另一方面,如果有很多连接,sslh 应作为独立服务器运行,以避免为每个传入连接生成新进程。

安装 sslh

在 Arch Linux 和 Antergos、Manjaro Linux 等衍生品上,使用 Pacman 进行安装,如下所示:

$ sudo pacman -S sslh

在 RHEL、CentOS 上,你需要添加 EPEL 存储库,然后安装 SSLH,如下所示:

$ sudo yum install epel-release
$ sudo yum install sslh

在 Fedora:

$ sudo dnf install sslh

如果它在默认存储库中不可用,你可以如这里所述手动编译和安装 SSLH。

配置 Apache 或 Nginx Web 服务器

如你所知,Apache 和 Nginx Web 服务器默认会监听所有网络接口(即 0.0.0.0:443)。我们需要更改此设置以告知 Web 服务器仅侦听 localhost 接口(即 127.0.0.1:443localhost:443)。

为此,请编辑 Web 服务器(nginx 或 apache)配置文件并找到以下行:

listen 443 ssl;

将其修改为:

listen 127.0.0.1:443 ssl;

如果你在 Apache 中使用虚拟主机,请确保你也修改了它。

VirtualHost 127.0.0.1:443

保存并关闭配置文件。不要重新启动该服务。我们还没有完成。

配置 SSLH

使 Web 服务器仅在本地接口上侦听后,编辑 SSLH 配置文件:

$ sudo vi /etc/default/sslh

找到下列行:

Run=no

将其修改为:

Run=yes

然后,向下滚动一点并修改以下行以允许 SSLH 在所有可用接口上侦听端口 443(例如 0.0.0.0:443)。

DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"

这里,

  • –user sslh:要求在这个特定的用户身份下运行。
  • –listen 0.0.0.0:443:SSLH 监听于所有可用接口的 443 端口。
  • –sshs 127.0.0.1:22 : 将 SSH 流量路由到本地的 22 端口。
  • –ssl 127.0.0.1:443 : 将 HTTPS/SSL 流量路由到本地的 443 端口。

保存并关闭文件。

最后,启用并启动 sslh 服务以更新更改。

$ sudo systemctl enable sslh
$ sudo systemctl start sslh

测试

检查 SSLH 守护程序是否正在监听 443。

$ ps -ef | grep sslh
sslh 2746 1 0 15:51 ? 00:00:00 /usr/sbin/sslh --foreground --user sslh --listen 0.0.0.0 443 --ssh 127.0.0.1 22 --ssl 127.0.0.1 443 --pidfile /var/run/sslh/sslh.pid
sslh 2747 2746 0 15:51 ? 00:00:00 /usr/sbin/sslh --foreground --user sslh --listen 0.0.0.0 443 --ssh 127.0.0.1 22 --ssl 127.0.0.1 443 --pidfile /var/run/sslh/sslh.pid
sk 2754 1432 0 15:51 pts/0 00:00:00 grep --color=auto sslh

现在,你可以使用端口 443 通过 SSH 访问远程服务器:

$ ssh -p 443 [email protected]

示例输出:

[email protected]'s password:
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-55-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

System information as of Wed Aug 14 13:11:04 IST 2019

System load: 0.23 Processes: 101
Usage of /: 53.5% of 19.56GB Users logged in: 0
Memory usage: 9% IP address for enp0s3: 192.168.225.50
Swap usage: 0% IP address for enp0s8: 192.168.225.51

* Keen to learn Istio? It's included in the single-package MicroK8s.

https://snapcraft.io/microk8s

61 packages can be updated.
22 updates are security updates.


Last login: Wed Aug 14 13:10:33 2019 from 127.0.0.1

通过 SSH 使用 443 端口访问远程系统

看见了吗?即使默认的 SSH 端口 22 被阻止,我现在也可以通过 SSH 访问远程服务器。正如你在上面的示例中所看到的,我使用 https 端口 443 进行 SSH 连接。

我在我的 Ubuntu 18.04 LTS 服务器上测试了 SSLH,它如上所述工作得很好。我在受保护的局域网中测试了 SSLH,所以我不知道是否有安全问题。如果你在生产环境中使用它,请在下面的评论部分中告诉我们使用 SSLH 的优缺点。

有关更多详细信息,请查看下面给出的官方 GitHub 页面。

资源:


via: https://www.ostechnix.com/sslh-share-port-https-ssh/

作者:sk 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这篇短文教你如何打开树莓派以及如何在之后正确关闭它。

树莓派最流行的 SBC(单板计算机)之一。如果你对这个话题感兴趣,我相信你已经有了一个树莓派。我还建议你使用其他树莓派配件来开始使用你的设备。

你已经准备好打开并开始使用。与桌面和笔记本电脑等传统电脑相比,它有相似以及不同之处。

今天,让我们继续学习如何打开和关闭树莓派,因为它并没有真正的“电源按钮”。

在本文中,我使用的是树莓派 3B+,但对于所有树莓派变体都是如此。

如何打开树莓派

Micro USB port for Power

micro USB 口为树莓派供电,打开它的方式是将电源线插入 micro USB 口。但是开始之前,你应该确保做了以下事情。

  • 根据官方指南准备带有 Raspbian 的 micro SD 卡并插入 micro SD 卡插槽。
  • 插入 HDMI 线、USB 键盘和鼠标。
  • 插入以太网线(可选)。

成上述操作后,请插入电源线。这会打开树莓派,显示屏将亮起并加载操作系统。

如果您将其关闭并且想要再次打开它,则必须从电源插座(首选)或从电路板的电源端口拔下电源线,然后再插上。它没有电源按钮。

关闭树莓派

关闭树莓派非常简单,单击菜单按钮并选择关闭。

Turn off Raspberry Pi graphically

或者你可以在终端使用 shutdown 命令

sudo shutdown now

shutdown 执行后等待它完成,接着你可以关闭电源。

再说一次,树莓派关闭后,没有真正的办法可以在不关闭再打开电源的情况下打开树莓派。你可以使用 GPIO 打开树莓派,但这需要额外的改装。

*注意:Micro USB 口往往是脆弱的,因此请关闭/打开电源,而不是经常拔出插入 micro USB 口。

好吧,这就是关于打开和关闭树莓派的所有内容,你打算用它做什么?请在评论中告诉我。


via: https://itsfoss.com/turn-on-raspberry-pi/

作者:Chinmay 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Check Linux Package Version

大多数人都知道如何在 Linux 中查找已安装软件包的版本,但是,你会如何查找那些还没有安装的软件包的版本呢?很简单!本文将介绍在 Debian 及其衍生品(如 Ubuntu)中,如何在软件包安装之前检查它的版本。对于那些想在安装之前知道软件包版本的人来说,这个小技巧可能会有所帮助。

在安装之前检查 Linux 软件包版本

在基于 DEB 的系统中,即使软件包还没有安装,也有很多方法可以查看他的版本。接下来,我将一一介绍。

方法 1 – 使用 Apt

检查软件包的版本的懒人方法:

$ apt show <package-name>

示例:

$ apt show vim

示例输出:

Package: vim
Version: 2:8.0.1453-1ubuntu1.1
Priority: optional
Section: editors
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Debian Vim Maintainers <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 2,852 kB
Provides: editor
Depends: vim-common (= 2:8.0.1453-1ubuntu1.1), vim-runtime (= 2:8.0.1453-1ubuntu1.1), libacl1 (>= 2.2.51-8), libc6 (>= 2.15), libgpm2 (>= 1.20.7), libpython3.6 (>= 3.6.5), libselinux1 (>= 1.32), libtinfo5 (>= 6)
Suggests: ctags, vim-doc, vim-scripts
Homepage: https://vim.sourceforge.io/
Task: cloud-image, server
Supported: 5y
Download-Size: 1,152 kB
APT-Sources: http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
Description: Vi IMproved - enhanced vi editor
 Vim is an almost compatible version of the UNIX editor Vi.
 .
 Many new features have been added: multi level undo, syntax
 highlighting, command line history, on-line help, filename
 completion, block operations, folding, Unicode support, etc.
 .
 This package contains a version of vim compiled with a rather
 standard set of features.  This package does not provide a GUI
 version of Vim.  See the other vim-* packages if you need more
 (or less).

N: There is 1 additional record. Please use the '-a' switch to see it

正如你在上面的输出中看到的,apt show 命令显示了软件包许多重要的细节,例如:

  1. 包名称,
  2. 版本,
  3. 来源(vim 来自哪里),
  4. 维护者,
  5. 包的主页,
  6. 依赖,
  7. 下载大小,
  8. 简介,
  9. 其他。

因此,Ubuntu 仓库中可用的 Vim 版本是 8.0.1453。如果我把它安装到我的 Ubuntu 系统上,就会得到这个版本。

或者,如果你不想看那么多的内容,那么可以使用 apt policy 这个命令:

$ apt policy vim
vim:
  Installed: (none)
  Candidate: 2:8.0.1453-1ubuntu1.1
  Version table:
     2:8.0.1453-1ubuntu1.1 500
        500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
     2:8.0.1453-1ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages

甚至更短:

$ apt list vim
Listing... Done
vim/bionic-updates,bionic-security 2:8.0.1453-1ubuntu1.1 amd64
N: There is 1 additional version. Please use the '-a' switch to see it

apt 是 Ubuntu 最新版本的默认包管理器。因此,这个命令足以找到一个软件包的详细信息,给定的软件包是否安装并不重要。这个命令将简单地列出给定包的版本以及其他详细信息。

方法 2 – 使用 Apt-get

要查看软件包的版本而不安装它,我们可以使用 apt-get 命令和 -s 选项。

$ apt-get -s install vim

示例输出:

NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  ctags vim-doc vim-scripts
The following NEW packages will be installed:
  vim
0 upgraded, 1 newly installed, 0 to remove and 45 not upgraded.
Inst vim (2:8.0.1453-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])
Conf vim (2:8.0.1453-1ubuntu1.1 Ubuntu:18.04/bionic-updates, Ubuntu:18.04/bionic-security [amd64])

这里,-s 选项代表 模拟。正如你在输出中看到的,它不执行任何操作。相反,它只是模拟执行,好让你知道在安装 Vim 时会发生什么。

你可以将 install 选项替换为 upgrade,以查看升级包时会发生什么。

$ apt-get -s upgrade vim

方法 3 – 使用 Aptitude

在 Debian 及其衍生品中,aptitude 是一个基于 ncurses(LCTT 译注:ncurses 是终端基于文本的字符处理的库)和命令行的前端 APT 包管理器。

使用 aptitude 来查看软件包的版本,只需运行:

$ aptitude versions vim
p   2:8.0.1453-1ubuntu1                                                              bionic                                                        500
p   2:8.0.1453-1ubuntu1.1                                                            bionic-security,bionic-updates                                500

你还可以使用模拟选项(-s)来查看安装或升级包时会发生什么。

$ aptitude -V -s install vim
The following NEW packages will be installed:
  vim [2:8.0.1453-1ubuntu1.1]
0 packages upgraded, 1 newly installed, 0 to remove and 45 not upgraded.
Need to get 1,152 kB of archives. After unpacking 2,852 kB will be used.
Would download/install/remove packages.

这里,-V 标志用于显示软件包的详细信息。

$ aptitude -V -s upgrade vim

类似的,只需将 install 替换为 upgrade 选项,即可查看升级包会发生什么。

$ aptitude search vim -F "%c %p %d %V"

这里,

  • -F 用于指定应使用哪种格式来显示输出,
  • %c – 包的状态(已安装或未安装),
  • %p – 包的名称,
  • %d – 包的简介,
  • %V – 包的版本。

当你不知道完整的软件包名称时,这非常有用。这个命令将列出包含给定字符串(即 vim)的所有软件包。

以下是上述命令的示例输出:

[...]
p vim                                                           Vi IMproved - enhanced vi editor                                         2:8.0.1453-1ub
p vim-tlib                                                      Some vim utility functions                                               1.23-1
p vim-ultisnips                                                 snippet solution for Vim                                                 3.1-3
p vim-vimerl                                                    Erlang plugin for Vim                                                    1.4.1+git20120
p vim-vimerl-syntax                                             Erlang syntax for Vim                                                    1.4.1+git20120
p vim-vimoutliner                                               script for building an outline editor on top of Vim                      0.3.4+pristine
p vim-voom                                                      Vim two-pane outliner                                                    5.2-1
p vim-youcompleteme                                             fast, as-you-type, fuzzy-search code completion engine for Vim           0+20161219+git

方法 4 – 使用 Apt-cache

apt-cache 命令用于查询基于 Debian 的系统中的 APT 缓存。对于要在 APT 的包缓存上执行很多操作时,它很有用。一个很好的例子是我们可以从某个仓库或 ppa 中列出已安装的应用程序

不仅是已安装的应用程序,我们还可以找到软件包的版本,即使它没有被安装。例如,以下命令将找到 Vim 的版本:

$ apt-cache policy vim

示例输出:

vim:
  Installed: (none)
  Candidate: 2:8.0.1453-1ubuntu1.1
  Version table:
     2:8.0.1453-1ubuntu1.1 500
        500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
     2:8.0.1453-1ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages

正如你在上面的输出中所看到的,Vim 并没有安装。如果你想安装它,你会知道它的版本是 8.0.1453。它还显示 vim 包来自哪个仓库。

方法 5 – 使用 Apt-show-versions

在 Debian 和基于 Debian 的系统中,apt-show-versions 命令用于列出已安装和可用软件包的版本。它还显示所有可升级软件包的列表。如果你有一个混合的稳定或测试环境,这是非常方便的。例如,如果你同时启用了稳定和测试仓库,那么你可以轻松地从测试库找到应用程序列表,还可以升级测试库中的所有软件包。

默认情况下系统没有安装 apt-show-versions,你需要使用以下命令来安装它:

$ sudo apt-get install apt-show-versions

安装后,运行以下命令查找软件包的版本,例如 Vim:

$ apt-show-versions -a vim
vim:amd64 2:8.0.1453-1ubuntu1   bionic          archive.ubuntu.com
vim:amd64 2:8.0.1453-1ubuntu1.1 bionic-security security.ubuntu.com
vim:amd64 2:8.0.1453-1ubuntu1.1 bionic-updates  archive.ubuntu.com
vim:amd64 not installed

这里,-a 选项打印给定软件包的所有可用版本。

如果已经安装了给定的软件包,那么就不需要使用 -a 选项。在这种情况下,只需运行:

$ apt-show-versions vim

差不多完了。如果你还了解其他方法,在下面的评论中分享,我将检查并更新本指南。


via: https://www.ostechnix.com/how-to-check-linux-package-version-before-installing-it/

作者:sk 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

最近发布的 Ubuntu 18.04.3 包括 Linux 5.0 内核中的几个新功能和改进,但默认情况下没有安装。本教程演示了如何在 Ubuntu 18.04 LTS 中获取 Linux 5 内核。

Ubuntu 18.04 的第三个“点发布版”已经发布,它带来了新的稳定版本的 GNOME 组件、livepatch 桌面集成和内核 5.0。

可是等等!什么是“ 小数点版本 point release ”?让我先解释一下。

Ubuntu LTS 小数点版本

Ubuntu 18.04 于 2018 年 4 月发布,由于它是一个长期支持 (LTS) 版本,它将一直支持到 2023 年。从那时起,已经有许多 bug 修复、安全更新和软件升级。如果你今天下载 Ubuntu 18.04,你需要在在安装 Ubuntu 后首先安装这些更新

当然,这不是一种理想情况。这就是 Ubuntu 提供这些“小数点版本”的原因。点发布版包含所有功能和安全更新以及自 LTS 版本首次发布以来添加的 bug 修复。如果你今天下载 Ubuntu,你会得到 Ubuntu 18.04.3 而不是 Ubuntu 18.04。这节省了在新安装的 Ubuntu 系统上下载和安装数百个更新的麻烦。

好了!现在你知道“小数点版本”的概念了。你如何升级到这些小数点版本?答案很简单。只需要像平时一样更新你的 Ubuntu 系统,这样你将在最新的小数点版本上了。

你可以查看 Ubuntu 版本来了解正在使用的版本。我检查了一下,因为我用的是 Ubuntu 18.04.3,我以为我的内核会是 5。当我查看 Linux 内核版本时,它仍然是基本内核 4.15。

Ubuntu Version And Linux Kernel Version Check

这是为什么?如果 Ubuntu 18.04.3 有 Linux 5.0 内核,为什么它仍然使用 Linux 4.15 内核?这是因为你必须通过选择 LTS 支持栈 Enablement Stack (通常称为 HWE)手动请求在 Ubuntu LTS 中安装新内核。

使用 HWE 在Ubuntu 18.04 中获取 Linux 5.0 内核

默认情况下,Ubuntu LTS 将保持在最初发布的 Linux 内核上。 硬件支持栈 hardware enablement stack (HWE)为现有的 Ubuntu LTS 版本提供了更新的内核和 xorg 支持。

最近发生了一些变化。如果你下载了 Ubuntu 18.04.2 或更新的桌面版本,那么就会为你启用 HWE,默认情况下你将获得新内核以及常规更新。

对于服务器版本以及下载了 18.04 和 18.04.1 的人员,你需要安装 HWE 内核。完成后,你将获得 Ubuntu 提供的更新的 LTS 版本内核。

要在 Ubuntu 桌面上安装 HWE 内核以及更新的 xorg,你可以在终端中使用此命令:

sudo apt install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04

如果你使用的是 Ubuntu 服务器版,那么就不会有 xorg 选项。所以只需在 Ubutnu 服务器版中安装 HWE 内核:

sudo apt-get install --install-recommends linux-generic-hwe-18.04

完成 HWE 内核的安装后,重启系统。现在你应该拥有更新的 Linux 内核了。

你在 Ubuntu 18.04 中获取 5.0 内核了么?

请注意,下载并安装了 Ubuntu 18.04.2 的用户已经启用了 HWE。所以这些用户将能轻松获取 5.0 内核。

在 Ubuntu 中启用 HWE 内核遇到困难了么?这完全取决于你。Linux 5.0 内核有几项性能改进和更好的硬件支持。你将从新内核获益。

你怎么看?你会安装 5.0 内核还是宁愿留在 4.15 内核上?


via: https://itsfoss.com/ubuntu-hwe-kernel/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出