当前位置:首页 » 编程软件 » linuxrpm内核编译安装

linuxrpm内核编译安装

发布时间: 2023-03-26 12:30:48

⑴ 如何编译内核及制作RPM包

前言

要编译自内核能各种同答案列举:
1 研究习内核源码
2 支持新硬件或者打某项内核功能
3 升级内核更新版本
4 按自要求定制优化内核功能
种种...
折腾需要理由我说面直接进入主题
编译式
编译内核种式kernel.org载选择载需要版本内核源码
:linux-2.6.32-rc1.tar.bz2载内核源码/home/user/目录进入载目录解压压缩

#cd /home/user/
#tar -xjvf linux-2.6.32-rc1.tar.bz2

二 准备编译环境

始前首先确认面软件包已经安装(编译标普华4.0直接全部安装CD3保证条件)
* rpmdevtools
* yum-utils
fedora系统使用命令安装:
#yum install yum-utils rpmdevtools

1. rpmbuild命令工作所需目录树面命令完该操作手建立目录树
命令建立:
#rpmdev-setuptree

命令/usr/src/rpmbuild/目录目录结构(位置没则能前用户目录).

# tree /usr/src/rpmbuild/
rpmbuild/
|-- BUILD
|-- RPMS
|-- SOURCES
|-- SPECS
`-- SRPMS
面部rpmbuild环境建立rpm
3. 安装内核源码包需要依赖组件(跳步操作)

su -c 'yum-builddep kernel-.src.rpm'
4.安装内核源码系统默认目录/usr/src/neoshine:

rpm -Uvh kernel-.src.rpm

三 配置内核(config配置文件)

面介绍何解源码包并修改配置重新打包源码
1. 解源码包并打所补丁BUILD目录

cd ~/rpmbuild/SPECS
rpmbuild -bp --target=`uname -m` kernel.spec

kernel源码找:

/usr/src/neoshine/rpmbuild/BUILD/kernel-/linux-. directory

配置内核源码
1. 进入内核源码:

cd ~/rpmbuild/BUILD/kernel-2.6.$ver/linux-2.6.$ver.$arch/
2. 复制/boot/config*配置文件源码目录,config文件已经配或者其备份kernel配置文件:

cp /boot/config2.6- 2.6.$ver.$arch .config
3. 先检查kernel配置新增选项:

make oldconfig
4. 定制内核功能关闭initrd支持选项执行图形化内核配置工具:

make menuconfig
注:generic setup选项找initial RAM system and RAM disk(initramfs and initrd) support 项取消编译同确保跟文件系统应驱系统所存储器应驱都已经编译内核(否则启系统).

5. .config文件第行改面内容(注意:没行面编译报错)

# i386
6. 拷贝.configSOURCES/:

cp .config ../SOURCES/config-$arch

四 编译新内核

1. 面始准备编译新内核包
打SPEC/kernel.spec

vim SPEC/kernel.spec
改变面行内容定制自内核扩展名(fc10类):

%define buildid .
步新内核rpm包程需要编译内核源码包
使用面命令新内核源码包
rpmbuild -bb --with baseonly --without debuginfo --target=`uname -m` kernel.spec

参数说明:bb表示编译二进制包即源码包without debuginfo 表示没调试信息
target=`uname -r`表示应前平台内核包
面命令功执行完BUILD/i686目录新内核安装包

五 安装新内核

rpm -ivh kernel-$ver-$arch.rpm
步操作自安装内核boot目录安装应内核模块/lib/moles/目录并且新内核应grub引导菜单
修改grub引导菜单格式

title new kernel
kernel /boot/vmlinuz-$ver-$arch root=/dev/sdax(hdax)

注意处要使用uuid指定跟文件系统(能挂载根区导致内核死机)要再加显示相关参数(内核支持应设置看黑黑屏幕)
至禁用initrd新内核配置安装完毕

⑵ rpm./configure权限问题

Linux 基础之 Linux 的文件及目录的权限、文件权限的修改、权限管理、网络管理、查看及修改网络配置、网络故障排除、网络管理配置、软件包管理器、rpm及yum安装、源代码编译安装和内核升级 原创
2022-04-30 16:06:43

殇陌离tk
码龄5年
关注
一、Linux 的文件及目录的权限、文件权限的修改、权限管理、网络管理、查看及修改网络配置、网络故障排除、网络管理配置、软件包管理器、rpm 及 yum 安装、源代码编译安装和内核升级

查看文件权限,如 -rw-------1 root root 1523 sep 28 12:05 anaconda-ks.cfg 中,-r 是类型,w-------1 是权限,root root 是所属用户和组,anaconda-ks.cfg 是文件名。
文件类型,如下所示:
- 普通文件
d 目录文件
b 块特殊文件
c 字符特殊文件
l 符号链接
f 命名管道
s 套接字文件
文件权限的表示方法,如下所示:
字符权限表示方法,r 是读,w 是写,x 是执行
数字权限的表示方法,r=4,w=2,x=1
-rw-r-xr-- 1 username groupname mtime filename 中,rw- 是文件属主的权限,r-x 是芹唯文件属组的权限,r-- 是其他用户的权限
创建新文件有默认权限,根据 umask 值计算,属主和属组根据当前进程的用户来设定
目录权限的表示方法,如下所示:
x 进入目录
rx 显示目录内的文件名
wx 修改目录内的文件名
修改权限命令,如下所示:
chomd 修改文件、目录权限,如 chmod u+x /tmp/testfile、chmod 755 /tmp/testfile
chown 更改属主、属组
chgrp 可以单独更改属组,不常用
特殊权限,如下所示:
SUID 用于二进制可执行文件,执行命令时取得文件属主权限,如 /usr/bin/passwd
SGID 用于目录,在该目录下创建新的文件和目录,权限自动更改为该目录的属组
SBIT 用于目录,该目录下新建的文件或目录,仅 root 和自己可以删除,如 /tmp
网络管理,如下所示:
网络状态查看
网络配置
路由命令
网络故障排除
网络服务管理
常用网络配置文件
网络状态查看工具,net-tools 和 iproute,如下所示;
net-tools,有 ipconfig、route、netstat
iproute2,有 ip、ss
网络状态查看命令,ifconfig,eth0 第一块网卡,也就是网络接口,第一个网络接口可能叫做下面的名字,如下所示:
eno1 板载网卡
ens33 PCI-E 网卡
enp0s3 无法获取物理信息的 PCI-E 网卡
CentOS 7 使用了一致性网络设备命名,以上都不匹配则使用 eth0
网络接口命名修改,如下所示:
网卡命名规则受 biosdevname 和 net.ifnames 两个参数差源影响
编辑 /etc/default/grub 文件,增加 biosdevname=0 net.ifnames=0
更新 grub,如 grub2-mkconfig -o /boot/grub2/grub.cfg
重启,reboot,网卡命名组合如下:
biosdevname net.ifnames 网卡名
0 1 ens33
1 0 em1
0 0 eth0
查看网关命令,可以使用 route -n,使用 -n 参数不解析主机名。
查看网络情况,查看网卡物理连接情况,可以使用 mii-tool eth0。
网络配置命令,如下所示:
ifconfig <接口> <IP地址> [netmask 子网掩码]
ifup <接口>
ifdown <接口>
网关配置命令,添加网关,如下所示:
route add default gw <网关ip>
route add -host <指定ip> gw<网关ip>
route add -net <指嫌庆培定网段> netmask <子网掩码> gw <网关ip>
网络命令集合,ip 命令,如下所示:
ip addr ls,ifconfig
ip link set dev eth0 up,ifup eth0
ip addr add 10.0.0.1/24 dev eth1,ifconfig eth1 10.0.0.1 netmask 255.255.255.0
ip route 10.0.0/24 via 192.168.0.1,route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.0.1
网络故障排除命令,如下所示:
ping
traceroute
mtr
nslookup
telnet
tcpmp
netstat
ss
网络服务管理,网络服务管理程序分为两种,分别为 SysV 和 systemd,如下所示:
service network start|stop|restart
chkconfig -list network
systemctl list-unit-files NetworkManager.service
systemctl start|stop|restart NetworkManager
systemctl enable|disable NetworkManager
网络配置文件,ifcfg-eth0,/etc/hosts。
软件安装,如下所示:
软件包管理器
rpm 包和 rpm 命令
yum 仓库
源代码编译安装
内核升级
grub 配置文件
软件包管理器,包管理器是方便软件安装、卸载,解决软件依赖关系的重要工具,如下所示:
CentOS、RedHat 使用 yum 包管理器,软件安装包格式为 rpm
Debian、Ubuntu 使用 apt 包管理器,软件安装包格式为 deb
rpm 包,rpm 包格式,如 vim-common-7.4.10-5.el7.x86_64.rpm,其中 vim-common 是软件名称,7.4.10-5 是软件版本,el7 是系统版本,x86_64 是平台。
rpm 命令,rpm 命令常用参数,如下所示:
-q 查询软件包
-i 安装软件包
-e 卸载软件包
yum 包管理器,如下所示:
rpm 包的问题,需要自己解决依赖关系,软件包来源不可靠
CentOS yum 源
国内镜像
yum 配置文件,如下所示:
/etc/yum.repos.d/CentOS-Base.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo
yum 命令常用选项,如下所示:
install 安装软件包
remove 卸载软件包
list|grouplist 查看软件包
update 升级软件包
其它方式安装,二进制安装和源代码编译安装,源代码编译安装如下所示:
wget https://openresty.org/download/openresty-1.15.8.1.tar.gz
tar -zxf openresty-VERSION.tar.gz
cd openresty-VERSION/
./configure --perfix=/usr/local/openresty
make -j2
make install
升级内核,rpm 格式内核,如下所示:
查看内核版本,uname -r
升级内核版本,yum install kernel-3.10.0
升级已安装的其它软件包和补丁,yum update
源代码编译安装内核,如下所示:
安装依赖包,yum install gcc gcc-c++ make ncurses-devel openssl-devel elfutils-libelf-devel
下载并解压内核,https://www.kernel.org,tar xvf linux-5.1..10.tar.xz -C /usr/src/kernels
配置内核编译参数,cd /usr/src/kernels/linux-5.1.10/,make menuconfig | allyesconfig | allnoconfig
使用当前系统内核配置,cp /boot/config-kernelversion.platform /usr/src/kernels/linux-5.1.10/ .config
查看 CPU,lscpu
编译,make -j2 all
安装内核,make moles_install,make install

⑶ linux下制作安装rpm包的方法

一、制作rpm包
以rp-pppoe-3.10为列进行制作过程。
1.下载rp-pppoe-3.10.tar.gz
[root@localhost
home]#
pwd
/home
[root@localhost
home]#
2.解压
#
tar
zxvf
rp-pppoe-3.10.tar.gz
3.
#
cp
/home/rp-pppoe-3.10/rp-pppoe.spec
/usr/src/redhat/SOURCES/
#
cp
/home/rp-pppoe-3.10.tar.gz
/usr/src/redhat/SOURCES/
3.制作rpm包
#
cd
/usr/src/redhat/SOURCES/
#
rpmbuild
-bb
rp-pppoe.spec
<==仅编译成
RPM
档案
#
rpmbuild
-ba
rp-pppoe.spec
<==编译并同时产生
RPM

SRPM
档案
如果编译成功,就已经制作好rp-pppoe的rpm包了,查看一下
[root@localhost
i386]#
pwd
/usr/src/redhat/RPMS/i386
[root@localhost
i386]#
ll
total
420
-rw-r--r--
1
root
root
186322
01-06
11:09
rp-pppoe-3.10-1.i386.rpm
-rw-r--r--
1
root
root
150356
01-06
11:09
rp-pppoe-debuginfo-3.10-1.i386.rpm
-rw-r--r--
1
root
root
63319
01-06
11:09
rp-pppoe-gui-3.10-1.i386.rpm
[root@localhost
i386]#
二、安装rpm包
1.查看系统有五安装过rp-pppoe。
[root@localhost
i386]#
rpm
-qa
rp-pppoe
rp-pppoe-3.5-1
2.删除系统已经安装过的rpm包
[root@localhost
i386]#
rpm
-e
rp-pppoe
[root@localhost
i386]#
rpm
-qa
rp-pppoe
3.安装刚才制作好的rpm包
[root@localhost
i386]#
ls
rp-pppoe-3.10-1.i386.rpm
rp-pppoe-gui-3.10-1.i386.rpm
rp-pppoe-debuginfo-3.10-1.i386.rpm
[root@localhost
i386]#
rpm
-ivh
rp-pppoe-3.10-1.i386.rpm
Preparing...
###########################################
[100%]
1:rp-pppoe
###########################################
[100%]
[root@localhost
i386]#
rpm
-qa
rp-pppoe
rp-pppoe-3.10-1
[root@localhost
i386]#
ls
/etc/ppp/pppoe-server-options
/etc/ppp/pppoe-server-options
以上信息说明安装成功了哦。
三、错误处理
在制作rpm(1.3步)的时候出现错:
RPM
build
errors:
Installed
(but
unpackaged)
file(s)
found:
解决办法:
将/usr/lib/rpm/macros

%__check_files
/usr/lib/rpm/check-files
%{buildroot}
注释掉

⑷ linux 下如何安装rpm命令

rpm默认就安装在了发行版本里,比如RedHat和centos。安装软件基本的用法是 rpm-ivh xx.rpm。

卸载软件的话,先rpm -qa |grep xx(待卸载的软件的关键字,如mysql)。然后rpm -e xx。

⑸ 如何编译安装Linux内核

1.先解压解压后会看到源代码的目录linux-2.6.27.69(这个版本要与当前系统的版本一样查看当系统版本uname-r只要版本号前的数字相同就可以了如2.6.27)2.进入目录linux-2.6.27.69运行命令makedistclean3.将/boot下面的内核配置文件复制到linux-2.6.27.69下,并命名为.config4.运行命令makemenuconfig(注意操作的时候都要进入linux内核源代码目录linux-2.6.27.59)5.运行makebzImage编译完后会在arch/x86/boot/下面产生一个bzImage内核文件6.makemoles编译内核模块7.makemoles_install安装内核模块(安装完后会在/lib/moles下面产生个文件2.6.27.59)8.制作ramddistk文件系统mkinitrdinitrd-2.6.27.59.img2.6.27.599安装内核cparch/x86/boot/bzImage/boot/vmlinuz-2.6.27.59cpinitrd-2.6.27.59.img/boot/10.修改/etc/grub.conf这个对着配制修改就可以了,但要指定相应内核文件与ramdisk文件修改后真接reboot一下,会出现启动菜单项,选择要启动的内核,就可以了整个编译安装的过程就完成了需要注意是:运行makemenucofig的时候可能会出现问题这是由于需安些一些依赖包ncurses-devel在制作ramdisk的时候可能出现错误,提示nomolefound之类的提示这个时候要指定参数mkinitrd--builtin=ata_piix整个的编译安装过程就是这样,这个编译与安装只是针对x86,至于arm编译的时候也是类似就不多说了,在整个编译与安装可能出现的错误就两个,也说的很清楚了

⑹ linux如何安装rpm包

1、点击文件,点击文件这里download目录。或者是rmp包所在的目录下。

⑺ 如何编译linux版本

编译linux内核步骤:
1、安装内核
如果内核已经安装(/usr/src/目录有linux子目录),跳过。如果没有安装,在光驱中放入linux安装光盘,找到kernel-source-2.xx.xx.rpm文件(xx代表数字,表示内核的版本号),比如RedHat linux的RPMS目录是/RedHat/RPMS/目录,然后使用命令rpm -ivh kernel-source-2.xx.xx.rpm安装内核。如果没有安装盘,可以去各linux厂家站点或者www.kernel.org下载。
2、清除从前编译内核时残留的.o 文件和不必要的关联
cd /usr/src/linux
make mrproper
3、配置内核,修改相关参数,请参考其他资料
在图形界面下,make xconfig;字符界面下,make menuconfig。在内核配置菜单中正确设置个内核选项,保存退出
4、正确设置关联文件
make dep
5、编译内核
对于大内核(比如需要SCSI支持),make bzImage
对于小内核,make zImage
6、编译模块
make moles
7、安装模块
make moles_install
8、使用新内核
把/usr/src/linux/arch/i386/boot/目录内新生成的内核文件bzImage/zImage拷贝到/boot目录,然后修改/etc/lilo.conf文件,加一个启动选项,使用新内核bzImage/zImage启动。格式如下:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
linear
default=linux-new ### 告诉lilo缺省使用新内核启动linux ###
append="mem=256M"
image=/boot/vmlinuz-2.2.14-5.0
label=linux
read-only
root=/dev/hda5
image=/boot/bzImage(zImage)
label=linux-new
read-only
root=/dev/hda5
保留旧有的启动选项可以保证新内核不能引导的情况,还可以进入linux进行其他操作。保存退出后,不要忘记了最重要的一步,运行/sbin/lilo,使修改生效。
9、重新生成ram磁盘
如果您的系统中的/etc/lilo.conf没有使用了ram磁盘选项initrd,略过。如果您的系统中的/etc/lilo.conf使用了ram磁盘选项initrd,使用mkinitrd initrd-内核版本号,内核版本号命令重新生成ram磁盘文件,例如我的Redhat 6.2:
mkinitrd initrd-2.2.14-5.0 2.2.14-5.0
之后把/etc/lilo.conf中的initrd指向新生成的initrd-2.2.14-5.0文件:
initrd=/boot/initrd-2.2.14-5.0
ram磁盘能使系统性能尽可能的优化,具体参考/usr/src/linux/Documents/initrd.txt文件
10、重新启动,OK!

⑻ linux用rpm方式安装zlib库和GD库 跟用编译方式安装zlib库和gd库有什么区别

rpm方式是你只要安装了就一直在,并且装到了内核中,编译方式安装是从你编译开始链接的,相当于是链接的动态库,是链接到编译器的

热点内容
绝地求生如何增加人机配置 发布:2024-04-28 00:42:55 浏览:315
思科怎么配置主机数量 发布:2024-04-28 00:41:58 浏览:823
java进制运算 发布:2024-04-28 00:33:58 浏览:284
编译原理什么内容 发布:2024-04-28 00:01:33 浏览:478
安卓手机怎么登录ipadid 发布:2024-04-27 23:52:25 浏览:671
浏览量和访问次数 发布:2024-04-27 23:44:56 浏览:476
在linuxpython 发布:2024-04-27 22:38:57 浏览:316
机顶盒密码是在哪里 发布:2024-04-27 22:32:47 浏览:158
名图买哪个配置值得买 发布:2024-04-27 22:32:36 浏览:878
比亚迪秦pro选哪个配置好 发布:2024-04-27 22:32:34 浏览:534