Linux安装程序包分为源码包和二进制包(源码编译以后),源码包安装须要编译,只有编译了的源码包,才能被解析;若编译时出错,运维人员难以解决;并且,源码包安装的时间较长;通常的源码包格式为“\*.tar.gz”,须要自行到官网下载。node
源码包通常包含文件linux
httpd-2.2.15-15.el6.centos.1.i686.rpm httpd:软件包名 2.2.15:版本 15:软件发布次数 el6:软件发行商 i686:适合的硬件平台
rpm -ivh #包全名 注意路径 rpm -ivh a.rpm b.rpm c.rpm #同时安装多个包 --nodeps:不检查依赖性安装 --replacefiles:替换文件安装,由于某个文件已经存在而报错,可使用此参数忽略 --replacepkgs:替换软件包,重装软件 --force:强制安装,--replacefiles和--replacepkgs综合 --test:测试安装 --prefix:指定安装路径
rpm -Uvh 包全名
查询的位置是/var/lib/rpm/ rpm -qa 包名 #是否安装 rpm -qa |grep 包名 #列出全部包名称相同的包 rpm -qi 包名 #列出已经安装包详细信息 rpm -qip 包全名 #列出未安装包详细信息 rpm -qil 包名 #软件包中的文件列表 rpm -qf 系统文件名 #查询文件系统属于哪一个RPM 例:rpm -qf /bin/ls rpm -qR 包名 #查询软件包所依赖的软件包
注意:卸载有依赖性,若是不按照依赖性卸载就会报错 rpm -e 包名 可使用--nodeps,不检测依赖性,可是这样会致使其它软件包没法正常使用
校验:已安装文件与/var/lib/rpm/目录下的数据库内容比较 rpm -V 已安装的包名 rpm -Vf 系统文件名 #校验是否被修改过 S:大小是否改变 M: 类型或者文件的权限是否改变 5:文件MD5校验是否改变 D:设备的主从代码是否改变 L:文件的路径是否改变 U:所属关系是否改变 G:所属组是否改变 T:修改时间是否改变 上述校验只是校验了文件,若是RPM包自己被动过手脚,只能利用数字证书校验
cpio:文件与文件库交互,问题是不能本身指定备份或者还原的文件是什么,必须有其它命令告知 若是发现某个系统文件出了问题,能够将这个问题文件提取出来进行修复 rpm2cpio 包全名 | cpio -idv . 文件的绝对路径 rpm2cpio:将rpm包转换为cpio格式 误删系统命令修复 一、从新安装一遍 二、提取文件,复制到对应的位置 例:误删/bin/ls 一、查看ls属于哪一个软件包 rpm -qf /bin/ls 二、模拟误删 mv /bin/ls /root/ 三、提取命令文件 rpm2cpio /mnt/cdrom/packages/cors...|cpio -idv ./bin/ls 四、复制到对应的位置 cp /root/bin/ls /bin/
若是判断是RPM数据库问题,就要基于光盘或者其余源的来源处获取获得的SambaRPM文件进行检查了 rm -f /var/lib/rpm/_db.* #删除RPM数据库 rpm --rebuildddb #重建数据库
一、安装 a、rpmbuild 参数 包全名 --rebuild:编译SRPM包,不会自动安装,手动安装 --recompile:编译SRPM+自动安装 b、*.spec安装 rpm -i SRPM包 解包 rpm -ba /root/rpmbuild/SPEC/httpd.spec 在/root/rpmbuild中生成目录,选择对应的按照方式便可
rpm -qa | grep yum #是否安装yum软件 vim /etc/yum.repos.d/CentOS-Base.repo #查看容器内容
网络yum源web
ls /etc/yum.repos.d/ #查看yum目录
CentOS-Media.repo #光盘yum源模板文件 一、挂载光盘 二、修改其它yum源后缀,使得他们失效 三、修改CentOS-Media.repo文件
yum list #查询全部可用软件包列表 yum list 包名 #查询yum源服务器中是否包还某个软件包 yum search 关键字 #查询yum源服务器中全部和关键字相同的软件包 yum install -y 包名 #自动回答yes安装 yum -y update 包名 #升级指定的软件包 yum remove 包名 #软件卸载,注意:卸载的时候必定要肯定软件的依赖包不影响系统,不然会致使系统奔溃 yum grouplist #查询能够安装的软件组 yum groupinfo 软件组名 #查询软件组中包含的软件 yum groupinstall 软件组名 #安装软件组 yum groupremove 软件组名 #卸载软件组
一、查看是否安装gcc编译器 rpm -q gcc 二、查看make编译器是否安装 rpm -qa make
一、下载软件包 二、解压缩 三、进入解压目录 四、./configure软件配置检查:①检查硬件环境是否符合要求 ②自定义功能选项,例如安装路径等 ③将系统环境的检测结果和定义好的功能选项写入Makefile这个文件中 注意:./configure不是系统命令,是源码包自带的检测脚本,必须采用./configure执行 ./configure --help:查看帮助 例:./configure--prefix=/usr/local/src/apache #指定安装目录 五、make编译:调用gcc编译器,编译Makefile中的内容,将源码文件编译为二进制文件 六、make clean:清空编译内容(非必须);若是在./configure或者make时报错,从新编译时,必定要先执行make clean 七、make install:安装,真正的安装过程,这个时会写清楚安装位置,能够记录下此内容,共卸载使用
diff 参数 old new #比较old与new文件的不一样 diff -Naur old.txt new.txt > txt.patch #比较两个文件,而且生成补丁文件 patch -pn < txt.patch #安装补丁文件进行更新 说明:补丁文件是要打入旧文件的,可是当前所在的目录不必定和补丁文件中记录的目录匹配,须要使用“-pn”来同步两个目录, 即:“-pn”取消补丁文件中记录的目录的“/” 例:/root/test/old.txt “-p2”:test/old.txt make:从新编译打过补丁的文件 make install:从新安装 patch -R < txt.patch #还原补丁
静态函数库——“\*.a”:优势——不须要外部数据,能够直接执行;缺点——编译生成的文件较大,升级困难 动态函数库——“\*.so”:优势——没有整合到程序中,文件小,升级方便;缺点——易出现问题
ldd -v 可执行文件名 #查看调用的函数库 例:ldd -v /bin/ls #查看ls调用的函数库 导入新的函数库 一、将函数库复制到/usr/lib目录中 cp *.so /usr/lib/ 二、修改函数库的配置文件 vi /etc/ld.so.conf 三、写入函数库所在的目录(默认/usr/lib/已经被识别) include ld.so.conf.d/*.conf /usr/lib/ 四、idconfig命令从新读取/etc/ld/.so.conf至缓存中 五、ldconfig -p:列出缓存中的函数库
一、安装Webmin a、tar -zxvf webmin-1.610.tar.gz b、cd webmin-1.610 c、./setup.sh