linux src.rpm内核源码编译安装升级

合集下载

LinuxRPM包安装、卸载和升级(rpm命令)详解

LinuxRPM包安装、卸载和升级(rpm命令)详解

LinuxRPM包安装、卸载和升级(rpm命令)详解
本节讲解如何使用 rpm 命令对 RPM 二进制包进行安装、卸载和升级操作。

我们以安装apache 程序为例。

因为后续章节还会介绍使用源码包的方式安装 apache 程序,读者可以直观地感受到源码包和 RPM 包的区别。

RPM包默认安装路径
通常情况下,RPM 包采用系统默认的安装路径,所有安装文件会按照类别分散安装到表 1 所示的目录中。

是测试页,如图 2 所示。

图 2 apache测试页
-e 选项表示卸载,也就是 erase 的首字母。

RPM 软件包的卸载命令支持使用“-nocteps”选项,即可以不检测依赖性直接卸载,但此方式不推荐大家使用,因为此操作很可能导致其他软件也无法征程使用。

在Linux终端中进行软件更新和升级的命令

在Linux终端中进行软件更新和升级的命令

在Linux终端中进行软件更新和升级的命令Linux是一种开源操作系统,具有高度的自由度和可定制性。

在使用Linux操作系统时,经常需要对软件进行更新和升级,以获取最新的功能和修复漏洞。

本文将介绍在Linux终端中进行软件更新和升级的命令,帮助读者轻松完成这一操作。

1. 更新软件包在Linux中,软件包是对软件的打包和安装形式。

要更新已安装的软件包,可以使用以下命令:```sudo apt update```该命令会更新可用软件包的清单,但不会安装最新版本。

2. 升级软件包要升级已安装的软件包到最新版本,可以使用以下命令:```sudo apt upgrade```该命令会检查可用的软件包和已安装的软件包之间的差异,并提示用户选择是否进行升级。

3. 强制升级软件包有时候,为了解决特定问题,需要强制升级软件包。

可以使用以下命令:```sudo apt dist-upgrade```该命令会在升级软件包时自动处理依赖关系,并删除不再需要的软件包。

4. 清理不再需要的软件包经常进行软件更新和升级后,系统可能会保留一些不再需要的软件包,占据硬盘空间。

可以使用以下命令清理不再需要的软件包:```sudo apt autoremove```该命令会自动移除已安装的软件包的依赖关系中不再需要的软件包。

5. 更新特定软件包有时候,只需要更新特定的软件包而不是全部更新。

可以使用以下命令:```sudo apt install package_name```将`package_name`替换为要更新的软件包的名称。

6. 更新系统内核系统内核是操作系统的核心部分,负责管理计算机硬件和软件的交互。

要更新系统内核,可以使用以下命令:```sudo apt install linux-image-generic```该命令会下载并安装最新版本的Linux内核。

7. 更新特定应用程序除了系统软件,还有许多其他应用程序也需要进行更新。

.tar.gz文件和.rpm文件的区别

.tar.gz文件和.rpm文件的区别

.tar.gz⽂件和.rpm⽂件的区别Linux软件的⼆进制分发是指事先已经编译好⼆进制形式的软件包的发布形式,其优点是安装使⽤容易,缺点则是缺乏灵活性,如果该软件包是为特定的硬件/操作系统平台编译的,那它就不能在另外的平台或环境下正确执⾏。

1、*.rpm形式的⼆进制软件包安装:rpm -ivh *.rpm卸载:rpm -e packgename说明:RPM(RedHat Packge Manager)是RedHat公司出的软件包管理器,使⽤它可以很容易地对rpm形式的软件包进⾏安装、升级、卸载、验证、查询等操作,安装简单,⽽卸载时也可以将软件安装在多处⽬录中的⽂件删除⼲净,因此推荐初学者尽可能使⽤rpm形式的软件包。

rpm的参数中-i是安装,-v是校验,-h是⽤散列符显⽰安装进度,*.rpm是软件包的⽂件名(这⾥的*.rpm特指*.src.rpm以外的以rpm为后缀的⽂件);参数-e是删除软件包,packgename是软件包名,与软件包的⽂件名有所区别,它往往是⽂件名中位于版本号前⾯的字符串,例如apache-3.1.12-i386.rpm和apache-devel-3.1.12-i386.rpm是软件包⽂件名,它们的软件包名称分别是apache和apache-devel。

更多的rpm 参数请⾃⾏参看⼿册页:man rpm。

2、*.tar.gz/*.tgz、*.bz2形式的⼆进制软件包安装:tar zxvf *.tar.gz 或 tar yxvf *.bz2卸载:⼿动删除说明:*.tar.gz/*.bz2形式的⼆进制软件包是⽤tar⼯具来打包、⽤gzip/bzip2压缩的,安装时直接解包即可。

对于解压后只有单⼀⽬录的软件,卸载时⽤命令“rm -rf 软件⽬录名”;如果解压后⽂件分散在多处⽬录中,则必须⼀⼀⼿动删除(稍⿇烦),想知道解压时向系统中安装了哪些⽂件,可以⽤命令“tar ztvf *.tar.gz”/“tar ytvf *.bz2”获取清单。

Linux kernel内核升级全过程,教你一次成功

Linux kernel内核升级全过程,教你一次成功

序言由于开发环境需要在linux-2.6内核上进行,于是准备对我的虚拟机上的Linux系统升级。

没想到这一弄就花了两天时间(反复装系统,辛苦啊~~),总算把Linux系统从2.4.20-8内核成功升级到了2.6.18内核。

网上虽然有很多介绍Linux内核升级的文章,不过要么过时,下载链接失效;要么表达不清,不知所云;更可气的是很多文章在转载过程中命令行都有错误。

刚开始我就是在这些“攻略”的指点下来升级的,以致于浪费了很多时间。

现在,费尽周折,升级成功,心情很爽,趁性也来写个“升级攻略”吧!于是特意又在虚拟机上重新安装一个Linux系统,再来一次完美的升级,边升级边记录这些步骤,写成一篇Linux内核升级记实录(可不是回忆录啊!),和大家一起分享~~!一、准备工作首先说明,下面带#号的行都是要输入的命令行,且本文提到的所有命令行都在终端里输入。

启动Linux系统,并用根用户登录,进入终端模式下。

1、查看Linux内核版本# uname -a如果屏幕显示的是2.6.x,说明你的已经是2.6的内核,也用不着看下文了,该干什么干什么去吧!~~~如果显示的是2.4.x,那恭喜你,闯关通过,赶快进行下一步。

2、下载2.6内核源码下载地址:/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz23、下载内核升级工具(1)下载module-init-tools-3.2.tar.bz2/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2(2)下载mkinitrd-4.1.18-2.i386.rpm/fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm(3)下载lvm2-2.00.25-1.01.i386.rpm/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm(4)下载device-mapper-1.00.19-2.i386.rpm/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm(2.6.18内核和这4个升级工具我都有备份,如果以上下载地址失效,请到/guestbook留下你的邮箱,我给你发过去)好啦,2.6内核和4个升级工具都下载完了(少一个也不行,如果没有下载齐全,请不要尝试下面的步骤,升级是不会成功的),下面回到Linux系统中开始配置工作吧。

kernel5.10 编译方法 -回复

kernel5.10 编译方法 -回复

kernel5.10 编译方法-回复标题:编译Linux Kernel 5.10的详细步骤在Linux的世界中,编译Kernel是一项基础且重要的技能。

本文将详细介绍如何从源代码编译Linux Kernel 5.10。

以下是一步一步的详细教程。

一、准备工作1. 确保系统环境首先,你需要一个运行中的Linux系统。

本文以Ubuntu 20.04为例,但大部分Linux发行版的步骤应该是类似的。

2. 更新系统确保你的系统已经更新到最新版本,可以使用以下命令:sudo apt-get updatesudo apt-get upgrade3. 安装必要的工具编译Kernel需要一些基本的开发工具和库,可以通过以下命令安装:sudo apt-get install build-essential libncurses5-dev bc flex bison openssl libssl-dev dkms二、下载Kernel源代码1. 创建工作目录在你的主目录下创建一个名为kernel的工作目录:mkdir ~/kernelcd ~/kernel2. 下载Kernel源代码你可以从Kernel官网(5.10的源代码:wget3. 解压源代码使用以下命令解压下载的源代码:tar xvf linux-5.10.tar.xz这将在当前目录下创建一个名为linux-5.10的目录,这是Kernel的源代码目录。

三、配置和编译Kernel1. 进入源代码目录cd linux-5.102. 配置Kernel配置Kernel是编译过程中最重要的一步,你可以根据你的硬件和需求选择要编译的功能。

对于大多数用户,使用以下命令进行基本配置应该足够:make menuconfig这将打开一个基于文本的配置界面。

你可以使用方向键和回车键浏览和选择选项。

完成后,保存并退出。

3. 开始编译配置完成后,可以开始编译Kernel了。

这个过程可能需要一些时间,取决于你的计算机性能:make -j(nproc)这里的-j参数表示使用多少个进程进行编译,(nproc)会自动获取你的CPU 核心数。

ubuntu命令安装内核源码及升级内核源码

ubuntu命令安装内核源码及升级内核源码

sudo apt-get install linux-source 会自动安装当前版本内核的源代码到/usr/src升级内核源码:1.将下载过来linux源代码包(tar.bz2包)解压到/usr/src下。

如果你还不知道怎么解压,请google之~解压完毕后可以在/usr/src目录下看到一个linux-2.6.31.6的文件夹2.转移目录至linux-2.6.31.6用如下命令:cd /usr/src/linux-2.6.31.63.先配置Ubuntu内核:make menuconfig具体怎么配置我不清楚,不过这个基本上不用怎么配置的,直接选最后一项,save,exit 就OK了4.接着开始编译Ubuntu内核:make这是一个漫长的过程,慢慢等吧~~这个花了我将近一个半小时的时间5.加入模块:make modules_install6.生成可执行的Ubuntu内核引导文件:make bzImage (注意i字母要大写)7.将bzImage复制至/boot下:cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.31.6 //2.6.32Ubuntu内核的bzImage目录为arch/x86/boot/bzImage8.清除多余的创建文件:make clean //这一步最好还是留到最后来做(现在可以先不跳过这一步),这样的话,即使你后面操作失误也可以回到这里重做,而不需要重新编译9.将System.map复制至/boot下:cp System.map /boot/System.map-2.6.31.610.生成initrd.img 这个很重要,我开始弄错了这个,害的我白重启了一次。

命令:cd /lib/modules/2.6.31.6sudo mkinitramfs -o /boot/initrd.img-2.6.31.6 //2.6.32可以为sudo update-initramfs -c - k 2.6.3211.自动查找新Ubuntu内核,并添加至grub引导:sudo update-grub这个过程也可以手动完成,方法是更改/boot/grub目录下menu.lst文件。

Linux操作系统的编译和安装

Linux操作系统的编译和安装

Linux操作系统的编译和安装在正文规定的字数限制下,为了准确满足标题描述的内容需求,并确保内容排版整洁美观、语句通顺、全文表达流畅且无影响阅读体验的问题,本文将按照以下格式进行写作:一、简介Linux操作系统是一种开源的、自由的Unix-like操作系统,它广泛应用于各种领域,包括服务器、嵌入式设备等。

本文将重点介绍Linux 操作系统的编译和安装过程。

二、编译准备1. 下载源代码在编译Linux操作系统之前,首先需要从官方网站下载Linux内核的源代码包。

2. 安装必要的依赖软件在编译过程中,需要安装一些必要的软件和工具,如编译器、构建工具等。

三、编译步骤1. 解压源代码包使用解压命令将下载的源代码包解压到指定目录。

2. 配置编译选项进入源代码目录,并运行配置命令,根据需要选择不同的编译选项。

3. 执行编译命令运行编译命令开始编译操作系统内核,这个过程可能需要一段时间。

四、安装步骤1. 安装编译生成的内核镜像文件将编译生成的内核镜像文件复制到合适的位置,并修改相关配置文件以引导新编译的内核。

2. 安装相关系统文件运行安装命令,将其他必要的系统文件复制到适当的位置。

五、系统配置1. 修改引导加载程序根据系统的引导加载程序,如GRUB、LILO等,修改引导配置文件以支持新安装的内核。

2. 配置网络和驱动程序根据具体需求,配置网络设置和硬件驱动程序。

六、测试与验证1. 重新启动系统重新启动计算机,并选择新编译的内核进行引导。

2. 验证系统版本和功能运行相应的命令,验证新安装的Linux操作系统版本和功能是否正确。

七、常见问题解决1. 编译错误分析编译过程中出现的错误信息,根据错误提示进行逐步修复。

2. 硬件兼容性问题部分硬件设备可能需要额外的驱动程序或补丁文件才能正常运行,根据具体情况进行相应的处理。

八、总结通过本文的介绍,读者可以了解到Linux操作系统的编译和安装过程,同时了解到在实际操作中会遇到的一些常见问题及解决方法。

linux下RPM工具的使用:RPM安装查询查看卸载升级软件包

linux下RPM工具的使用:RPM安装查询查看卸载升级软件包

linux下RPM工具的使用:RPM安装查询查看卸载升级软件包•o一.关于软件包在linux中安装软件是需要安装包的,软件的安装包有各种类型:.zip,.rar,.rpm,.tar.gz,.tar。

软件包还可以分为源代码包和二进制包,源代码包是没有经过编译的包,需要经过GCC、C++编译器环境编译才能运行。

二进制包无需编译,可以直接安装使用。

区分是否为源代码包还是二进制包还得基于软件包里面的文件来判断,包含.h、.c、.cpp、.cc等结尾的源码文件,称之为源代码包,而软件包里面存在bin目录(bin目录里有可执行文件),称之为二进制包。

源码包高度可定制,可以自由选择自己需要的功能。

二.RPM软件包RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、SUSE以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。

RPM包是二进制包可以直接使用。

rpm包的获取方式:Centos系统镜像光盘;网站/;各种软件的官网下载。

三.RPM包通用的命名规则RPM包的一般命名规则为:name-version-arch.rpm或者name-version-arch.src.rpm。

• name就是软件包的名称• version是软件的版本号,版本号的格式通常为“主版本号.次版本号.修正号”,也有发布版本号,表示这个RPM包是第几次编译生成的• arch表示软件包适用的硬件平台,目前RPM支持的平台有:i386,i586,i686、sparc,alpha,x86_64等等• .rpm或.src.rpm,是RPM包类型的后缀,.rpm是编译好的二进制包,可用rpm命令直接安装;.src.rpm表示是源代码包,需要编译之后才可以使用• el* 表示这个软件包的发行商版本,el7表示这个软件包是在RHEL 7.x/CentOS 7.x下使用• devel:表示这个RPM包是软件的开发包• noarch:说明这样的软件包可以在任何平台上安装,不需要特定的硬件平台。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

下载的内核源码包拷贝到/usr/src
执行rpm -ivh your-package.src.rpm
warning: user brewbuilder does not exist - using root
warning: group brewbuilder does not exist - using root
# useraddbrewbuilder
# groupaddbrewbuilder
# cd /usr/src/redhat/SPECS
[root@localhost SPECS]# ls
kernel-2.6.spec
rpmbuild -bp --target=i686 your-package.specs一个和你的软件包同名的specs文件
4.cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录
调整linux核心,让系统能够支持多于256 个legacy tty设备(pty, tty pair)
在linux核心配置里有一个选项'CONFIG_LEGACY_PTY_COUNT' 是用来控制系统内建多少个legacy tty设备;
如果想让系统能够支持很多legacy tty设备,需要修改此配置项的值,然后重新编译内核。

对于2.6.39内核
在使用交互的config方式,如menuconfig之前;注意先修改内核目录下/drivers/tty/Kconfig(/drivers/char/Kconfig)文件
cd /usr/src/redhat/BUILD/your-package/ 一个的软件包同名的目录/drivers/tty/Kconfig(/drivers/char/Kconfig)
修改之前:
config LEGACY_PTY_COUNT
int "Maximum number of legacy PTY in use"
depends on LEGACY_PTYS
range 0 256
default "256"
修改之后:
config LEGACY_PTY_COUNT
int "Maximum number of legacy PTY in use"
depends on LEGACY_PTYS
range 1 2048
default "2048"
然后重新编译内核,安装编译好的内核
cd /usr/src/redhat/BUILD/your-package/一个的软件包同名的目录
为了保证内核升级的准确性,要在原有Linux系统配置的基础上进行升级,首先,进入新内核文件目录,将原LINUX系统配置文件复制到新内核文件目录中,并命名为“.config”,然后,执行内核参数配置命令“make menuconfig”命令,如下图:
在开始新内核参数配置,需要先载入源内核,按照操作说明使用“+”、“-”或者“↑”“↓”键,移动光标至“Load an Alternate Configuration File”选项,如图:
“Enter”键确认,提示画面如图:
确认返回,开始内核新参数配置;由于Linux内核支持文件系统的变化,对IBM X3650 M3 Server配置内核参数时需要添加SYSFS 支持,选择“General setup”项,增加“ enable deprecated sysfs features to support old userspace tools”模块;操作如图:
选择“Device Drivers”→“Character Drivers”→“Legacy (BSD) PTY support”,增加Legacy (BSD) PTY support模块,修改Maximum number of legacy PTY in use(NEW)的值操作如图:
其他有用的功能,如网络功能定义、Windows文件系统支持、硬件驱动等,可根据需要自行选择;保存参数配置,退出配置画面,
也可以选择直接退出配置画面,按照提示确认保存参数,如图:
检查必要参数配置
例如:Legacy (BSD) PTY support模块检查:
# cat .config|grep PTY
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
lvm2文件系统模块检查:
# cat .config|grepDEPRECATED_V2
CONFIG_SYSFS_DEPRECATED_V2=y
等等。

编译内核:
#make–jn #** n代表同时编译的进程数,可以加快
编译速度,n由你的配置决定,这里用15-25 #make modules
#makemodules_install
#make install
在看一下etc/grub.conf
重新启动,检查启动是否正常,完成升级。

相关文档
最新文档