标签 升级 下的文章

虽然有些人使用 Linux 来表示整个操作系统,但要注意的是,严格地来说,Linux 只是个内核。另一方面,发行版是一个完整功能的系统,它建立在内核之上,具有各种各样的应用程序工具和库。

在正常操作期间,内核负责执行两个重要任务:

  1. 作为硬件和系统上运行的软件之间的接口。
  2. 尽可能高效地管理系统资源。

为此,内核通过内置的驱动程序或以后可作为模块安装的驱动程序与硬件通信。

例如,当你计算机上运行的程序想要连接到无线网络时,它会将该请求提交给内核,后者又会使用正确的驱动程序连接到网络。

随着新的设备和技术定期出来,如果我们想充分利用它们,保持最新的内核就很重要。此外,更新内核将帮助我们利用新的内核函数,并保护自己免受先前版本中发现的漏洞的攻击。

准备好了在 CentOS 7 或其衍生产品(如 RHEL 7和 Fedora)上更新内核了么?如果是这样,请继续阅读!

步骤 1:检查已安装的内核版本

让我们安装了一个发行版,它包含了一个特定版本的内核。为了展示当前系统中已安装的版本,我们可以:

# uname -sr

下面的图片展示了在一台 CentOS 7 服务器上的输出信息:

Check Kernel Version in CentOS 7

在 CentOS 7 上检查内核版本

如果我们现在进入 https://www.kernel.org/,在撰写本文时,我们看到最新的内核版本是4.10.1(其他版本可以从同一网站获得)。

还要考虑的一个重要的事情是内核版本的生命周期 - 如果你当前使用的版本接近它的生命周期结束,那么在该日期后将不会提供更多的 bug 修复。关于更多信息,请参阅内核发布页。

步骤 2:在 CentOS 7 中升级内核

大多数现代发行版提供了一种使用 yum 等包管理系统和官方支持的仓库升级内核的方法。

但是,这只会升级内核到仓库中可用的最新版本 - 而不是在 https://www.kernel.org/ 中可用的最新版本。不幸的是,Red Hat 只允许使用前者升级内核。

与 Red Hat 不同,CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。

要在 CentOS 7 上启用 ELRepo 仓库,请运行:

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

Enable ELRepo in CentOS 7

在 CentOS 7 启用 ELRepo

仓库启用后,你可以使用下面的命令列出可用的内核相关包:

# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

Yum - Find Available Kernel Versions

yum - 找出可用的内核版本

接下来,安装最新的主线稳定内核:

# yum --enablerepo=elrepo-kernel install kernel-ml

Install Latest Kernel Version in CentOS 7

在 CentOS 7 中安装最新的内核版本

最后,重启机器并应用最新内核,接着运行下面的命令检查最新内核版本:

uname -sr

Verify Kernel Version

验证内核版本

步骤 3:设置 GRUB 默认的内核版本

为了让新安装的内核成为默认启动选项,你需要如下修改 GRUB 配置:

打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0。意思是 GRUB 初始化页面的第一个内核将作为默认内核。

GRUB_TIMEOUT=5
GRUB_DEFAULT=0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

接下来运行下面的命令来重新创建内核配置。

# grub2-mkconfig -o /boot/grub2/grub.cfg

Set Kernel in GRUB

在 GRUB 中设置内核

重启并验证最新的内核已作为默认内核。

Booting Default Kernel Version in CentOS 7

在 CentOS 7 中启动默认内核版本

恭喜你!你已经在 CentOS 7 中升级内核了!

总结

在本文中,我们解释了如何轻松升级系统上的 Linux 内核。我们还没讲到另外一个方法,因为它涉及从源代码编译内核,这可以写成一本书,并且不推荐在生产系统上这么做。

虽然它是最好的学习体验之一,并且允许细粒度配置内核,但是你可能会让你的系统不可用,并且可能必须从头重新安装它。

如果你仍然有兴趣构建内核作为学习经验,你可以在 Kernel Newbies页面中获得指导。

一如既往,如果你对本文有任何问题或意见,请随时使用下面的评论栏。


作者简介:

我是一个计算机上瘾的家伙,并且是开源和 Linux 系统软件的粉丝,有大约 4 年的 Linux 发行版桌面、服务器和 bash 脚本的经验。


via: http://www.tecmint.com/install-upgrade-kernel-version-in-centos-7/

作者:Matei Cezar 译者:geekpi 校对:wxy

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

每过段时间,就有新的设备和技术出来,因此如果我们想要充分利用它,保持最新的 Linux 内核就显得很重要。此外,更新系统内核将使我们能够利用新的内核优化,并且它还可以帮助我们避免在早期版本中发现的漏洞。

建议阅读: 如何升级 CentOS 7内核

准备好了在 Ubuntu 16.04 或其上下游衍生版本(如 Debian 和 Linux Mint)中更新你的内核了么?如果准备好了,请你继续阅读!

第一步:检查安装的内核版本

要发现当前系统安装的版本,我们可以:

$ uname -sr

下面的截图显示了在 Ubuntu 16.04 server 中上面命令的输出:

Check Kernel Version in Ubuntu

在 Ubuntu 中检查内核版本

第二步:在 Ubuntu 16.04 中升级内核

要升级 Ubuntu 16.04 的内核,打开 http://kernel.ubuntu.com/~kernel-ppa/mainline/ 并选择列表中需要的版本(发布此文时最新内核是 4.10.1)。

接下来,根据你的系统架构下载 .deb 文件:

对于 64 位系统:

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-headers-4.10.1-041001_4.10.1-041001.201702260735_all.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-headers-4.10.1-041001-generic_4.10.1-041001.201702260735_amd64.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-image-4.10.1-041001-generic_4.10.1-041001.201702260735_amd64.deb

这是 32 位系统:

$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-headers-4.10.1-041001_4.10.1-041001.201702260735_all.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-headers-4.10.1-041001-generic_4.10.1-041001.201702260735_i386.deb
$ wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-image-4.10.1-041001-generic_4.10.1-041001.201702260735_i386.deb

下载完成这些所有内核文件后,如下安装:

$ sudo dpkg -i *.deb

安装完成后,重启并验证新的内核已经被使用了:

$ uname -sr

就是这样。你下载就可以使用比 Ubuntu 16.04 默认安装的内核的更新版本了。

总结

本文我们展示了如何在 Ubuntu 系统上轻松升级Linux内核。这里还有另一个流程,但我们在这里没有展示,因为它需要从源代码编译内核,这不推荐在生产 Linux 系统上使用。

如果你仍然有兴趣编译内核作为一个学习经验,你可以在 Kernel Newbies 网站中得到指导该如何做。

一如既往,如果你对本文有任何问题或意见,请随时使用下面的评论栏。


作者简介:

Gabriel Cánepa - 一位来自阿根廷圣路易斯梅塞德斯镇 (Villa Mercedes, San Luis, Argentina) 的 GNU/Linux 系统管理员,Web 开发者。就职于一家世界领先级的消费品公司,乐于在每天的工作中能使用 FOSS 工具来提高生产力。


via: http://www.tecmint.com/upgrade-kernel-in-ubuntu/

作者:Gabriel Cánepa 译者:geekpi 校对:wxy

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

想要安装最新的Linux内核吗?一个简单的脚本就可以在Ubuntu系统中方便的完成这项工作。

Michael Murphy 写了一个脚本用来将最新的候选版、标准版、或者低延时版的内核安装到 Ubuntu 系统中。这个脚本会在询问一些问题后从 Ubuntu 内核主线页面 下载安装最新的 Linux 内核包。

通过脚本来安装、升级Linux内核:

1、 点击这个 github 页面 右上角的 “Download Zip” 来下载该脚本(注:此脚本在墙外,我已经搬运回来了,请参见下面。)。

2、鼠标右键单击用户下载目录下的 Zip 文件,选择 “在此展开” 将其解压。

3、右键点击解压后的文件夹,选择 “在终端中打开” 到此文件夹下。

此时将会打开一个终端,并且自动导航到目标文件夹下。如果你找不到 “在终端中打开” 选项的话,在 Ubuntu 软件中心搜索安装 nautilus-open-terminal ,然后重新登录系统即可(也可以再终端中运行 nautilus -q 来取代重新登录系统的操作)。

备注:此脚本如下,你可以将它保存为一个可执行的 shell 脚本:

#!/bin/bash
cd /tmp

if ! which lynx > /dev/null; then sudo apt-get install lynx -y; fi

if [ "$(getconf LONG_BIT)" == "64" ]; then arch=amd64; else arch=i386; fi

function download() {
   wget $(lynx -dump -listonly -dont-wrap-pre $kernelURL | grep "$1" | grep "$2" | grep "$arch" | cut -d ' ' -f 4)
}

# Kernel URL
read -p "Do you want the latest RC?" rc
case "$rc" in
   y* | Y*) kernelURL=$(lynx -dump -nonumbers http://kernel.ubuntu.com/~kernel-ppa/mainline/ | tail -1) ;;
   n* | N*) kernelURL=$(lynx -dump -nonumbers http://kernel.ubuntu.com/~kernel-ppa/mainline/ | grep -v rc | tail -1) ;;
   *) exit ;;
esac
 
read -p "Do you want the lowlatency kernel?" lowlatency
case "$lowlatency" in
   y* | Y*) lowlatency=1 ;;
   n* | n*) lowlatency=0 ;;
   *) exit ;;
esac

# Download Kernel
if [ "$lowlatency" == "0" ]; then
   echo "Downloading the latest generic kernel."
   download generic header
   download generic image
elif [ "$lowlatency" == "1" ]; then
   echo "Downloading the latest lowlatency kernel."
   download lowlatency header
   download lowlatency image
fi

# Shared Kernel Header
wget $(lynx -dump -listonly -dont-wrap-pre $kernelURL | grep all | cut -d ' ' -f 4)

# Install Kernel
echo "Installing Linux Kernel"
sudo dpkg -i linux*.deb
echo "Done. You may now reboot."
  1. 当进入终端后,运行以下命令来赋予脚本执行本次操作的权限。
chmod +x *

最后,每当你想要安装或升级 Ubuntu 的 linux 内核时都可以运行此脚本。

./*

这里之所以使用 * 替代脚本名称是因为文件夹中只有它一个文件。

如果脚本运行成功,重启电脑即可。

恢复并且卸载新版内核

如果因为某些原因要恢复并且移除新版内核的话,请重启电脑,在 Grub 启动器的 高级选项 菜单下选择旧版内核来启动系统。

当系统启动后,参照下边章节继续执行。

如何移除旧的(或新的)内核:

  1. 从 Ubuntu 软件中心安装 Synaptic Package Manager。
  2. 打开 Synaptic Package Manager 然后如下操作:
  • 点击 Reload 按钮,让想要被删除的新内核显示出来.
  • 在左侧面板中选择 Status -> Installed ,让查找列表更清晰一些。
  • 在 Quick filter 输入框中输入 linux-image- 用于查询。
  • 选择一个内核镜像 “linux-image-x.xx.xx-generic” 然后将其标记为removal(或者Complete Removal)
  • 最后,应用变更

重复以上操作直到移除所有你不需要的内核。注意,不要随意移除此刻正在运行的内核,你可以通过 uname -r 命令来查看运行的内核。

对于 Ubuntu 服务器来说,你可以一步步运行下面的命令:

uname -r

dpkg -l | grep linux-image-

sudo apt-get autoremove KERNEL_IMAGE_NAME


via: http://ubuntuhandbook.org/index.php/2015/08/install-latest-kernel-script/

作者:Ji m 译者:mr-ping 校对:wxy

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

Ubuntu 14.10已于前段时间发布。想知道如何从 Ubuntu 14.04 升级到 Ubuntu 14.10 么?别担心,这很容易做到。事实上,只要网络连接速度好,升级只是点击几下鼠标的事情而已。

你需要从 Ubuntu 14.04 切换到 Ubuntu 14.10 么?

在你升级到Ubuntu 14.10之前,请确定你真的想为升级 14.10 而抛弃 Ubuntu 14.04。一个很重要的原因是你不能从Ubuntu 14.10 回归到14.04。 你需要完全重新安装。

Ubuntu 14.04是长期支持(LTS)版本。这意味着有更多的稳定性和更长的支持周期。如果升级到14.10,你将被迫在9个月后从Ubuntu 14.10 升级到15.04,而14.04将会持续3年以上。

此外,目前Ubuntu 14.10没有很多的新功能使吸引用户切换到14.10。当然了,你肯定会得到最前沿的操作系统。所以,在这之前是否升级到Ubuntu 14.10是你自己的决定。

从Ubuntu 14.04 升级到 Ubuntu 14.10

要从Ubuntu 14.04 升级到 Ubuntu 14.10,遵循下面的步骤:

步骤 1:

打开 软件和更新.

进入更新选项卡。这里要确保Ubuntu有新版本时通知我 设置成对于任何新版本。默认Ubuntu只会在另一个LTS发布时通知你。你必须要把它改成在任何中间版本都升级。

步骤 2:

现在运行 软件升级

升级完成后,它应该会提示一个可用的新版本。点击升级,接着按照提示的步骤来。

我希望本篇教程可以帮助你从 Ubuntu 14.04 升级到 Ubuntu 14.10。虽然本教程是为Ubuntu写的,但是你可以用同样的步骤升级到 Xubuntu 14.10、Kubuntu 14.10 或者Lubuntu。敬请期待下一篇Ubuntu 14.10相关文章。


via: http://itsfoss.com/upgrade-ubuntu-14-04-to-14-10/

作者:Abhishek 译者:geekpi 校对:Caroline

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

虽然Ubuntu 14.04 按计划不会近期发布正式版,但那些想要尝试最新软件和系统的人现在可以从Ubuntu 13.10 就地升级到 14.04了。

Ubuntu 14.04 目前计划在2014.4.17发布,但是你不必等那么长的时间来升级尝试。这个简要的教程给你展示了如何就地从Ububtu 13.10 升级到 14.04。

就地升级是你在已存在的Ubuntu上运行update-manager命令来升级到下一版。它允许你保留你大多数的文档,设定和一些程序。

大多数就地升级依赖于一个可靠的网络连接。没有良好稳定的连接,可能无法使用这个方法升级Ubuntu。

如果你无法使用网络升级,你还可以通过CD/DVD盘来就地升级。这个方法允许你不通过网络连接离线升级Ubuntu。

升级到 Ubuntu 14.04

为了升级到Ubuntu 14.04, 你首先要给你要升级的电脑做好准备工作。请运行下面的命令更新所有存在的包和内核。

sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get autoremove

完成上述更新后,你可能需要重启来在升级前应用新的包和内核。

接着,按下键盘上的Alt+F2键来打开Ubuntu上的命令窗口。当窗口打开后,输入下面的命令并按下回车

update-manager –d

Ubuntu接着应该带着升级选项会打开update-manager。按下Upgrade 开始升级你的机器。

就是这样!

等待Ubuntu完成下载并安装所有的更新包。当一切完成时,你会被提示重启计算机。

享受吧!


via: http://www.liberiangeek.net/2014/01/daily-ubuntu-tips-upgrade-to-ubuntu-14-04-trusty-tahr-from-13-10/

译者:geekpi 校对:wxy

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

系统管理员的日常工作之一就是升级服务,为服务打上补丁包或升级一些花哨的功能。2013年初,最新的 MySQL 5.6发布,目标是提供更好的性能和扩展能力。如果你对此有点兴趣,倒是可以看看我写的这篇 如何在 Debian 和 Ubuntu 上升级 MySQL

在这篇教程中,我会假设你已经通过 apt-get 安装了 MySQL。写这篇文章的时候,大部分 Linux 发行版上部署的都是 MySQL 5.5。这里我将向你们介绍如何从 MySQL 5.5升级到5.6。

步骤1:备份 MySQL 配置文件。

$ sudo mkdir /backup
$ sudo tar cvfvz /backup/mysql_conf.tgz /etc/mysql

步骤2:把数据库导出到一个 .sql 文件,并且把数据存放路径下面的数据也备份起来。

$ sudo sh -c 'mysqldump -u root -p -A --events > /backup/backup_db.sql
$ sudo tar cvfvz /backup/mysql_data.tgz /var/lib/mysql

注意:如果你为你的在线 MySQL 系统提供了持续备份,强烈建议你在执行上面步骤时使用单事务选项,或显式使用锁(以保证数据一致性 —— 译注),详见这个教程

步骤3:停止 MySQL 服务

$ sudo service mysql stop

步骤4:卸载 MySQL 软件包

$ sudo apt-get remove mysql-server mysql-client mysql-common
$ sudo apt-get autoremove
$ sudo apt-get autoclean

使用 apt-get 卸载时不要用 purge 选项,这会删除 MySQL 配置文件和其它一些以后要用到的数据。

步骤5: 安装 MySQL 依赖包(内核异步 IO 访问库),MySQL 5.5以及之后的版本都依赖它。

$ sudo apt-get install libaio1

步骤6:从官网下载 Debian 版的 MySQL 软件包

32位系统:

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15-debian6.0-i686.deb

64位系统:

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15-debian6.0-x86_64.deb

步骤7:安装 MySQL 软件包

$ sudo dpkg -i mysql-5.6.15-debian6.0-*.deb

这个软件包会被安装在 /opt/mysql 目录下面。

步骤8:将 MySQL 命令所在的路径添加到系统环境变量 PATH 内。

Debian 上:

$ sudo sh -c 'echo "PATH=$PATH:/opt/mysql/server-5.6/bin" >> /etc/profile'
$ source /etc/profile

Ubuntu 或 Linux Mint 上:

$ sudo sh -c 'echo "PATH=${PATH}:/opt/mysql/server-5.6/bin" >> /etc/environment'
$ source /etc/environment

步骤9:进入 MySQL 配置文件,修改下面两行配置。

$ sudo vi /etc/mysql/my.cnf

-

basedir = /opt/mysql/server-5.6

lc-messages-dir = /opt/mysql/server-5.6/share

步骤10:设置启动脚本

复制 MySQL 启动脚本到 /etc/init.d 目录下,并且将脚本设置为开机启动,这样一来 MySQL 就能在系统启动的时候自动启动了。

$ sudo cp /opt/mysql/server-5.6/support-files/mysql.server /etc/init.d/mysql
$ sudo update-rc.d mysql defaults

步骤11:(仅限 Ubuntu) 编辑AppArmor配置

MySQL 的上个版本安装时会为 AppArmor 服务创建一个配置文件,这个文件在 MySQL 卸载后会保留在系统中,但是它与现在安装好的 MySQL 版本不兼容。你需要重新编辑下这个配置文件,然后 MySQL 服务才能正常启动。

首先,建一个软链接。

$ sudo ln -s /opt/mysql/server-5.6/bin/mysqld /usr/sbin/mysqld

然后编辑 MySQL AppArmor 配置文件。

$ sudo vi /etc/apparmor.d/usr.sbin.mysqld

/opt/mysql/server-5.6/lib/plugin/ r,

/opt/mysql/server-5.6/lib/plugin/.so mr,

/opt/mysql/server-5.6/share/** r,

最后重启 AppArmor 服务。

$ sudo service apparmor restart

步骤12:(还是仅限 Ubuntu)删除上个 MySQL 版本留下的自启动配置文件。

这个版本的 MySQL 使用 SysVinit (就是 /etc/init.d/mysql)来代替。

$ sudo rm /etc/init/mysql.conf

步骤13:启动 MySQL 服务。

$ sudo service mysql start

步骤14:恢复 MySQL 数据库。

$ sudo mysql -u root -p < /backup/backup_db.sql

步骤15:最后,升级 MySQL 系统表。

$ sudo /opt/mysql/server-5.6/bin/mysql_upgrade -v -u root -p

解决 MySQL 升级过程中产生的问题

如果 Ubuntu 下的 MySQL 服务启动时出现如下错误,就是由于旧版 MySQL AppArmor 配置文件禁止其运行而引起。你需要参考步骤11来更新 AppArmor 的配置文件。

Dec 20 19:57:48 ubuntu kernel: [ 5856.960592] type=1400 audit(1387598268.807:39): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=25216 comm="apparmor_parser"

via: http://xmodulo.com/2013/12/upgrade-mysql-server-debian-ubuntu.html

译者:bazz2 校对:Caroline

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