centos怎么编译linux
① CentOS 5.5下如何编译安装新内核
第一步:下载内核
传送门:地址.笔者下载的是3.2.84版本
第二步:解压编译内核
由于我下的是.tar.xz文件,用tar命令不能直接解压。
1.我的系统里不带xz解压软件,先下载xz-5.0.3.tar.bz2文件并解压安装
tar -jvxf xz-5.0.3.tar.bz2 cd /opt/xz-5.0.3 #进入解压后的文件夹 ./configure make make install2.解压内核
xz -d linux-3.2.84.tar.xz tar -xvf linux-3.2.84.tar3.如果是第一次编译内核,并没有上次残留的文件可以跳过该步骤(最好仔细看下指令对应的功能)
make mrproper make clean 删除大多数的编译生成文件, 但是会保留内核的配置文件.config, 还有足够的编译支持来建立扩展模块 make mrproper 删除所有的编译生成文件, 还有内核配置文件, 再加上各种备份文件 make distclean mrproper删除的文件, 加上编辑备份文件和一些补丁文件。4.搭建编译内核所需要的环境
yum -y install gcc yum install ncurses ncurses-devel yum install openssl-devel5.进入内核解压文件夹配置内核参数
由于我是个小白不会选,为了方便,直接用make localmodconfig命令,这个命令是以本来的.config文件为基础去选,可以参考论文:嵌入式linux系统的裁剪优化和测试技术.然后我就一直回车直到结束。然后再输入make menuconfig命令进入图形选择菜单,将kenel hacking中的Sample..选项去掉(具体那一项我忘了,尴尬),退出保存。然后编辑.config文件中的“CONFIG_SYSFS_DEPRECATED”,默认该选项为not set,被注释掉的,将其改为y,即修改为“CONFIG_SYSFS_DEPRECATED=y”,之后可能还要修改,后面再说。
6.编译新内核
make bzImage && make moles && make moles_install7.安装内核
8.编译安装可能出现的情况
应该是没什么问题, 不过也不排除会出现下面的情况:make:警告:检测到时钟错误。您的创建可能是不完整的。 解决办法:find . -type f -exec touch {} ; 重新编译下就好了。
9.处理下img中的东西(我说不清楚= =)
1)解压initrd文件
# cp /boot/initrd-3.2.84.img /tmp # cd /tmp/ # ls initrd-2.6.30.4.img # mkdir newinitrd # cd newinitrd/ # zcat ../initrd-2.6.30.4.img | cpio -i释放之后看到如下内容
# ls bin dev etc init lib proc sbin sys sysroot2)编辑init,删掉其中重复的四行中的两行 echo “Loading dm-region-hash.ko mole” insmod /lib/dm-region-hash.ko echo “Loading dm-region-hash.ko mole” insmod /lib/dm-region-hash.ko 3)重新打包initrd
# find . | cpio -c -o > ../initrd 11538 blocks # cd .. # gzip -9 < initrd > initrd.img # ls initrd-2.6.30.4.img initrd initrd.img这里面的initrd.img就是重新打包后的文件。 4)把initrd.img复制到/boot下 命令:#cp initrd.img /boot 5)修改grub.config,在/etc文件夹下 把initrd-3.2.84.img改为initrd.img就可以了 6)reboot重启 记得选择自己的内核!别错过啦!
以上内容就是小编为大家带来的关于CentOS 5.5下编译安装新内核的方法了,希望可以帮助到大家!
② linux下如何编译源码包或者说是安装
1、安装编码源码的编译工具,一般是需要安装gcc
yum install gcc
2、把源码解压
tar zxvf uname.tar.gz
3、进入解压的目录执行
./configure
make
make install
完成编译安装
③ 如何在centos7中编译linux内核
下载linux内核的源代码,然后设置内核参数,然后编译。
④ CentOS怎么编译linux程序
打开你的终端 linux叫bash 进去到你的工作目录 在里面敲命令 比如 gcc code.c -o code 就是把code.c源代码编译链接成code 系统默认生成的可执行文件是a.out 这个你需要学习gcc命令 如果是项目编译需要用到make 还要学习写makefile 东西很多 望采纳
⑤ centos 5.7 如何编译linux-3.0.4核心
就像网上那些教程一样就行,不过有一点,glibc也要跟着升级一下,以符合最新的内核,而且gcc也要搭的,以前试过,不过以失败告终,
⑥ 如何升级centos7内核并且编译
、使用 elrepo rpm包升级
查看前系统内核版本 uname -r
1. 导入key
rpm --import
2. 安装 elrepo yum源
rpm -Uvh
3. 安装内核
yumelrepo源新版本内核直接yum安装即
yum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml -y
5. 设置系统启顺序
查看系统启项:
cat /boot/grub2/grub.cfg |grep menuentry
发现新版本内核设置新版本内核默认启:
grub2-set-default 'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'
查看默认启系统版本grub2-editenv list:
显示'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'
6. reboot重启再查看 uname -r
二、使用源码编译安装升级
1 载内核源码
载网址
wget xxx
2 解压并进入源码目录
3 更新系统并安装依赖软件
#yum update
#yum upgrade
#yum groups install Development Tools
#yum install ncurses-devel qt-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel
4 前内核配置文件拷贝前目录
本应该执行make menuconfig自定义内核配置配置文件.config; 直接使用原系统内核配置拷贝/boot目录配置文件前目录
cp /boot/config-2.6.32-431.11.2.el6.x86_64 .config
5 使用前内核配置
#sh -c 'yes "" | make oldconfig' #centos 6
#sh -c 'y "" | make oldconfig' #centos 7
6 编译安装
#make bzImage
#make moles
#make moles_install
#make install
7 设置系统启顺序
查看系统启项:
cat /boot/grub2/grub.cfg |grep menuentry
发现新版本内核设置新版本内核默认启:
grub2-set-default 'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'
查看默认启系统版本grub2-editenv list:
显示'CentOS Linux (4.8.5-1.el7.elrepo.x86_64) 7 (Core)'
8 reboot重启再查看 uname -r
-
⑦ linux的centos下怎么编译安装LNMP,然后运行phpcms
1、先准备gcc环境
2、下载所需安装包,nginx,mysql,php等及php其依赖包和php优化包
3、编译nginx,依赖pcre
4、编译mysql,依赖cmake
5、编译php,依赖zlib,libpng,jpegsrc,freetype,gd,libxml2,libiconv,libxslt,autoconf,libmcrypt,mhash,mcrypt,libevent,
6、php优化包,eaccelerator,memcache,PDO_MYSQL,ImageMagick,imagick,ZendGuardLoader
7、都启动了netstat -ntlp检查mysql/php/nginx的端口。
8、追问给你个详细的链接。
⑧ 如何在linux编译和使用ACE
一:下载源码
http://download.dre.vanderbilt.e/
目前最新版本6.1.2。如果只使用ACE,可以选择选择ACE only (tar+gzip format)。
二:编译
2.1 设置环境变量
在当前用户目录下,找到.bash_profile(centos版本)文件或.profile(ubuntu版本)文件,在该文件末尾增加内容:
export PATH
export ACE_ROOT=/home/yleesun/3rd/ACE_wrappers
export LD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib:$LD_LIBRARY_PATH
具体ACE_ROOT的路径,根据实际情况修改。
2.2 执行编译命令
在$ACE_ROOT/ace目录下运行命令:
ln -s config-linux.h config.h
在$ACE_ROOT/include/makeinclude目录下执行命令:
ln -s platform_linux.GNU platform_macros.GNU
回到目录$ACE_ROOT下,执行命令:make
大概20分钟左右编译完成。
三:使用ACE编程
ACE库编译完成,下面写个程序试试。
#include <ace/Log_Msg.h>
#include <ace/OS_main.h>
using namespace std;
int ACE_TMAIN(int argc, ACE_TCHAR *argv[])
{
ACE_DEBUG((LM_DEBUG, ACE_TEXT(“Hello World!”)));
return 0;
}
该文件命名为acetest.cpp
执行下面命令进行编译:
g++ -I$ACE_ROOT -lACE -L$ACE_ROOT/lib -o acetest acetest.cpp
编译成功,运行:
./acetest
打印出:Hello World!
注意:g++ 命令后面到参数
-I$ACE_ROOT // 指定包含到头文件路径,此处是大写的 I ,include 的第一个字母到大写。
-lACE // 指定包含到库名称,此处是小写的 l,library 的第一个字母到小写。
-L$ACE_ROOT/lib // 指定依赖库到路径,此处是大写到L,library 的第一个字母到大写。
⑨ centos 怎样写linux命令
Linux的常用基本命令。
首先启动Linux。启动完毕后需要进行用户的登录,选择登陆的用户不同自然权限也不一样,其中“系统管理员”拥有最高权限。
在启动Linux后屏幕出现如下界面显示:
……
Red Hat Linux release 9 (Shrike)
Kernel2.4.20.8 on an i686
login:
输入:root(管理员名)后,计算机显示输口令(password:),输入你的口令即可。当计算机出现一个“#”提示 符时,表明你登录成功!
屏幕显示Linux提示符:[root@localhost root]#_
这里需要说明的是“Red Hat Linux release 9 (Shrike)”表示当前使用的操作系统的名称及版本。“2.4.20.8”表示Linux操作系统的核
心版本编号。“i686”表示该台电脑使用的CPU的等级。
下面我们来介绍常用基本命令
一,注销,关机,重启
注销系统的logout命令
1,Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可:
[root@localhost root]#logout
Red Hat Linuxrelease 9(Shike)
Kernel2.4.20.8 on an i686
Login: ← 回到登陆的画面
2,关机或重新启动的shutdown命令
Shutdown命令可以关闭所有程序,依照用户的需要,重新启动或关机。
参数说明如下:
立即关机:-h 参数让系统立即关机。范例如下:
[root@localhost root]#shutdown –h now ← 要求系统立即关机
指定关机时间:time参数可指定关机的时间;或设置多久时间后运行shutdown命令,范例如下:
[root@localhost root]#shutdown now ← 立刻关机
[root@localhost root]#shutdown +5 ← 5分钟后关机
[root@localhost root]#shutdown 10:30 ← 在10:30时关机
关机后自动重启:-r 参数设置关机后重新启动。范例如下:
[root@localhost root]#shutdown -r now ← 立刻关闭系统并重启
[root@localhost root]#shutdown -r 23:59 ← 指定在23:59时重启动
3,重新启动计算机的reboot命令
顾名思义,reboot命令是用来重新启动系统的。常用的参数如下:
-f 参数:不依正常的程序运行关机,直接关闭系统并重新启动计算机。
-I 参数:在在重新启动之前关闭所有网络接口。
虽然reboot命令有个参数可以使用,但是一般只需要单独运行reboot命令就可以了
二,文件与目录的操作
1,列出文件列表的ls命令
ls(list)命令是非常有用的命令,用来显示当前目录中的文件和子目录列表。配合参数的使用,能以不同的方式显示目录内容。范例
如下:
显示当前目录的内容:
[tony@free tony]$ ls
Desktop mail myinstall.log test.txt ← 有两个目录及两个文件夹
当运行ls命令时,并不会显示名称以“.”开头的文件。因此可加上“-a”参数指定要列出这些文件。范例如下:
[tony@free tony]$ ls –a
以“-s”参数显示每个文件所有的空间,并以“-S”参数指定按所有占用空间的大小排序。范例如下:
[tony@free tony]$ ls –s –S
总计36
4 Desktop 4 mail 24 myinstall.log 4 test.txt
在ls命令后直接加上欲显示的目录路径,就会列出该目录的内容。范例如下:
[tony@free tony]$ ls –l/usr/games
2,切换目录的cd命令
cd(change directory)命令可让用户切当前所在的目录。范例如下:
[tony@free home]$ cd tony ← 切换到当前目录下的tony子目录
[tony@free tony]$ cd .. ← 切换到上一层目录
[tony@free home]$ cd / ← 切换到系统根目录
[tony@free /]$ cd ← 切换到用户主目录
[tony@free tony]$ cd /usr/bin ← 切换到/usr/bin目录
3,创建目录的mkdir命令
Mkdir(make directory)命令可用来创建子目录。下面的范例会在所在目录下创建tool子目录。
[tony@free tony]$ mkdir tool
4,删除目录的rmdir命令
rmdir(remove directory)命令可用来删除“空”的子目录。范例如下:
[tony@free tony]$ rmdir tool ← 删除tool目录
5,复制文件的cp命令
cp()命令可以将文件从一处复制到另一处。一般在使用cp命令将以个文件复制成另一个文件或复制到某个目录时,需要指定原始文件
名与目的文件名或目录。范例如下:
[tony@free tony]$ cp data1.txt data2.txt ← 将data1.txt复制成data2.txt
[tony@free tony]$ cp data3.txt /tmp/data ← 将data3复制到/tmp/data目录中
显示复制过程:加入-v参数可显示命令执行过程。范例如下:
[tony@free tony]$ cp zip.txt zip2.txt ← 一般状态下不会显示复制过程
[tony@free tony]$ cp –v zip.txt zip3.txt ← 以-v显示复制过程
zip.txt ->zip3.txt
递回复制:加入“-R”参数可同时复制目录下的所有文件及子目录。范例如下:
[tony@free tony]$ cp –v –R * backup ← 将所有文件(含子目录文件)复制到backup目录
6,删除文件或目录的rm命令
rm(remove)命令可以删除文件或目录。范例如下:
[tony@free tony]$ rm myfile ← 删除指定的文件
[tony@free tony]$ rm * ← 删除当前目录中的所有文件
rm命令的常用参数如下:
强迫删除:使用-f参数时,rm命令会直接删除文件,不再询问。范例如下:
[tony@free tony]$ rm –f *.txt ← 强迫删除文件
递回删除:-r 也是一个相当常用的参数,使用此参数可同时删除指定目录下的所有文件及子目录。范例如下:
[tony@free tony]$ rm –r data ← 删除data目录(含data目录下所有文件和子目录)
[tony@free tony]$ rm –r * ← 删除所有文件(含当前目录所有文件,所有子目录和子目录下的文件)
强制删除指定目录:当使用-r参数删除目录时,若该目录下有许多子目录及文件,则系统会不间断地询问,以确认您的确要删除
目录或文件。若已确定要删除所存目录及文件,则可以使用-rf参数,如此一来,系统将直接删除该目录中所有的文件及子目录,不再询问。范
例如下:
[tony@free tony]$ rm –rf tmp 强制删除tmp目录及该目录下所有文件及子目录
显示删除过程:使用-v 参数。范例如下:
[tony@free tony]$ rm –v
7,让显示画面暂停的more命令
为了避免画面显示瞬间就闪过去,用户可以使用more命令,让画面在显示满一页时暂停,此时可按空格键继续显示下一个画面,或按Q键停
止显示。
当使用ls命令查看文件列表时,若文件太多则可以配合more命令使用。范例如下:
[tony@free bin]$ ls –al more
单独使用more命令时,可用来显示文字文件的内容。范例如下:
[tony@free tony]$ more data.txt
8,连接文件的cat命令
cat(concatenate) 命令可以显示文件的内容(经常和more命令搭配使用),或是将数个文件合并成一个文件。范例如下:
逐页显示 preface.txt的内容:
[tony@free tony]$ cat preface.txt more
将preface.txt 附加到outline.txt文件之后:
[tony@free tony]$ cat preface.txt >> outline.txt
将new.txt和info.txt合并成readme.txt文件:
[tony@free tony]$ cat new.txt info.txt >readme.txt
9,移动或更换文件,目录名称的mv命令
mv (move)命令可以将文件及目录移动到另一个目录下面,或更换文件及目录的名称。范例如下:
[tony@free backup]$ mv a.txt .. ← 将a.txt文件移到上层目录
[tony@free backup]$ mv z1.txt z3.txt ← 将 z1.txt改名成z3.txt
[tony@free backup]$ cd.. ← 切换到上一层目录
[tony@free tony]$ mv backup.. ← backup 目录上移一层
10,显示当前所在目录的pwd命令
pwd(print working directory)命令可显示用户当前所在的目录。范例如下:
[tony@free tony]$ pwd
/home/tony ← 当前所在目录为“/home/tony”
11,查找文件的locate命令
locate 命令可用来搜索包含指定条件字符串的文件或目录。范例如下:
[tony@free tony]$ locate zh_CN 列出所有包含“zh_CN”字符串的文件和目录。
由于locate命令是从系统中保存文件及目录名称的数据库中搜索文件,虽然系统会定时更新数据库,但对于刚新增或删除的文件、目录,
仍然可能会因为数据库尚未更新而无法查得,此时可用root身份运行updatedb命令更新,为此数据库得内容正确。
12,搜索字符串得grep命令
grep 命令可以搜索特定字符串来并显示出来,一般用来过滤先前得结果,避免显示太多不必要得信息。范例如下:
[tony@free etc]$ grep text *.conf ← 搜索当前目录中扩展名为.conf且包含“text”字符串得文件。
grep:amd.conf: ← 拒绝不符权限得操作
grep:diskcheck.conf: ← 拒绝不符权限得操作
grep:grub.conf ← 拒绝不符权限得操作
若您是使用一般权限的用户运行,上例的输出结果会包含很多如“拒绝不符权限的操作之类的错误信息,可使用-s参数消除。
[tony@free etc]$ grep –s text *.conf
13,重导与管道
重导(redirect)可将某命令的结果输出导文件中,它有两中命令:“>”和“>>”。“>”可将结果输出到文件中,该文件原有的内容会被
删除:“>>”则将结果附加到文件中,原文件内容不会被清除。范例如下:
[tony@free tony]$ ls –a>dir.txt ← 将ls –a命令执行结果输出到dir.txt文件。
[tony@free tony]$ cat data1.txt >> data2.txt ← 将 data1.txt 内容附加到data2.txt文件之后。
通道(pipe)命令的符号是“”,可将某命令的结果输出给另一命令,一下范例将ls命令的输出结果传给grep命令过滤:
[tony@free etc]$ ls gerp conf ← 搜索并显示ls命令运行结果中包含有“conf”字符串
在举一个删除文件或目录的例子,可以利用yes命令重复输出“y”字符的特性,将结果传给rm命令,如此即可避免重复输入“y”:
[tony@free tony]$ yes rm –r mydir
三,使用光盘及软盘
在Linux的文字模式下要使用光盘或软盘,并不是只将光盘或软盘放入即可,用户需要运行加载的命令,才可读写数据。所谓加载就是将存
储介质(如光盘和软盘)指定成系统中的某个目录(如/mnt/cdrom或mnt/floppy)。通过直接存取此加载目录,即可读写存储介质中的数据。
以下就来看看文字模式下的加载及卸载命令。
1,加载的mount命令
要使用光盘时先把光盘放入光驱,然后执行加载的mount命令,将光盘加载至系统中:
[tony@free tony]# mount/dev/cdrom/mut/cdrom ← 加载光盘
同理,使用软盘之前也需要和光盘一样,必须先加载后才能使用:
[tony@free tony]# mount/dev/fd0/mut/floppy ← 加载软盘
2,卸载的umount命令
如果不需要使用光盘或软盘,则需先执行卸载命令之后,才能将光盘或软盘退出。范例如下:
[tony@free tony]# umount / mnt/cdrom ← 光盘卸载
在不使用软盘时执行umount 命令卸载软盘,再将软盘拿出
[tony@free tony]# umount / mnt/ ← 软盘卸载
四,在后台运行程序
用户有时的程序有可能要花费很多时间,如果将它放在前台运行,将导致无法继续做其他事情,最好的方法就是将它放在后台运行,甚至
可能希望在用户注销系统后,程序还可以继续运行。让我们看看那如何实现这一目的。
1,在后台运行程序的&、bg命令
将程序放到后台运行的最简单方法就是在命令最后加上“&”,范例如下:
[tony@free root]# updatedb & ← 在后台执行 locate 数据库更新命令
[tony@free root]# bg ← 将更新操作放到后台运行
2,前台运行的程序fg命令
如果用户当前已有程序在后台运行,可以输入fg命令,将它从背景中移到前台运行:
[tony@free root]# fg ← 放到前台执行的命令会显示出来
3,在退出后让程序继续运行的nohup命令
此命令可使用户退出系统后,程序继续运行。范例如下:
[tony@free rony]$ nohup myserver &
然后用户就可以退出了,当再次登录的时候,可以用ps –aux命令看到程序仍在后台中运行。
五,任务调度命令
计算机有很多程序需要周期性的被运用,例如清理磁盘中不要的暂存盘、备份系统数据、检查远程服务器的邮件等。对于这些重复性的工
作,其实不需要每次都辛苦地运行这些程序。可利用任务调度命令,指定系统定期在某个时间运行这些程序,轻轻松松完成想要执行的工作。
任务调度的crond常驻命令
crond 是Linux用来定期执行程序的命令。当安装完成操作系统后,默认便会启动此任务调动命令。crond命令每分钟会定期检查是否有要
执行的工作,如果有要执行的工作,便会自动执行该工作。由于任务调度中间的操作过程十分繁杂,我们只将任务调度文件的写法介绍给大家
,供大家参阅:
Minute Hour Day Month DayOfWeek Command
在这段文字中除了“Command”是每次都必须指定的字段以外,其他自动皆可视需求自行决定是否指定。
六,任务调度的系统工作
/ect/crontab/文件是Linux系统工程的任务调度设置文件,其默认的内容如下:
SHELL=/bin/bash ← 指定执行任务调度工作时所使用的SHELL
PATH=/shin:/bin:/usr/sbin:/usr/bin ← 指定命令搜索的路径
MAILTO=root ← 指定将输出结果给root用户
HOME=/ ← 指定跟目录
⑩ centos怎么编译linux系统
有些软件会有 make uninstall 之类的功能,但大多都没有,所以只有手动删除,或者在configure的时候加个preifx参数,比如 --preifx=/opt/squid,这样当你不用的时候直接rm -rf /opt/squid 就可以了。