當前位置:首頁 » 編程軟體 » 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-03-28 17:08:20 瀏覽:241
密碼反編譯是什麼意思 發布:2024-03-28 17:02:54 瀏覽:309
linux下samba 發布:2024-03-28 16:54:12 瀏覽:539
我的世界國際服手機版免費開伺服器 發布:2024-03-28 16:45:36 瀏覽:284
phpmongodb擴展下載 發布:2024-03-28 16:41:03 瀏覽:323
android開發教程筆記 發布:2024-03-28 16:31:48 瀏覽:771
榮威i6max配置怎麼選 發布:2024-03-28 16:18:11 瀏覽:455
cml編程 發布:2024-03-28 16:14:53 瀏覽:758
linuxc語言文件讀寫 發布:2024-03-28 15:59:57 瀏覽:579
點遍歷演算法 發布:2024-03-28 15:57:34 瀏覽:497