1.源码包的安装
1.下载源码包
源码包 后缀:.tar.gz
2.需要安装gcc
yum list gcc
yum install
3.解压源码包
cd Desktop/
ls
tar zxvf ......
4.生成makefile文件(如果没有)
进入解压后的文件目录中,看是否有makefile文件
如果没有,运行configure文件生成makefile文件
./configure --help
mkdir /opt/xx
./configure --prefix=/opt/xx/
如果不指明安装目录的话,默认安装在/usr/local/apache2/的目录下
5.编译
make(当前目录直接运行)
6.安装
make install (安装到/opt/xx里面)
注:安装Apache软件源码包httpd.tar.gz
安装wine.tar.gz,作用是:在Linux下运行windows软件(需要安装3-4个小时)
2.使用RPM包(RedHat Package Management)
- 把已有的源码包,编译成为RPM包,去掉了源码包部分功能,只是源码包功能的一个子集
- RPM包自带的功能无法取消,可能出现冗余功能,也可能因此出现漏洞;而源码包功能可以根据需要进行使用,可以取消无关的功能。因而源码包的定制性很强,RPM包的定制性不强,但是安装起来非常方便
- RPM包后缀:.rpm
- 可以实现软件的安装,查询,卸载,更新。。。
- rpm功能由第一个选项决定的,如果第一个选项是i的话,代表install
rpm -ivh
-i:install
-v:安装进度
-h:数字签名
①.安装
rpm -ivh linuxqq-v1.2-betal.i386.rpm
版本 系统 后缀
②.执行
qq
③.查询
q:查询 a:所有
rpm -qa
rpm -qa | grep linuxqq
rpm包安装路径已经指定好默认路径
查询路径:
rpm -ql linuxqq
查询配置文件:
rpm -qc linuxqq
查询帮助文档:
rpm -qd linuxqq
查询安装信息:
rpm -qi linuxqq
查看某个文件是由那个软件安装出来的:
rpm -qf /etc/passwd
验证数字签名(用公钥,没有的话为not OK):
rpm -K vsftpd-2.0.5-16.e15_4.1.i386.rpm
所以要导入CentOS的公钥:
rpm -import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
验证(有公钥,验证通过为OK)
rpm -K vsftpd-2.0.5-16.e15_4.1.i386.rpm
查看软件包(p:package)
rpm -qlp linuxqq-v1.0.2-betal.i386.rpm
安装新的软件包:
rpm -ivh /mnt/CentOS/vsftpd-2.0.5-15.e15_4.1.i386.rpm
rpm -qa | grep vsftpd
rpm -qc vsftpd
rpm -qd vsftpd
rpm -ql vsftpd
rpm -qi vsftpd
④.卸载(e:eraser)
rpm -e vsftpd
rpm -qa | grep vsftpd
⑤.更新(U:Update)
rpm -Uvh vsftpd-2.0.5-16.e15_4.1.i386.rpm
如果没有此元件,就直接安装所需软件;
如果已经安装了此软件,就先卸载,再安装此软件。
如果要是更新内核的话,就需要使用:
rpm -ivh kernel......
这样可以保证防止因为新版本内核不稳定造成的安全问题,因为这个命令没有删除旧版本的内核
包依赖问题(rpm包最头疼的问题)
问题:假如安装A软件包,提示需要先安装B软件包,然后安装B软件包,提示需要先安装C软件包。。。。。。
解决:
rpm -ivh --force xxxxxxx
(但是不推荐使用这种方式)
推荐使用yum安装解决这个问题!
3.YUM安装
原理:
yum服务器:提供发送要安装以及相互依赖的安装包
yum客户端:接收到所有安装包,存于内存中,安装完成后删除
问题:
1.为什么服务器可以知道哪些安装包之间有依赖关系?
2.为什么客户端知道去哪个服务器下载所需要的安装包?
1)yum客户端配置
①.配置Yum源
cd /etc/yum.repos.d/
ls
rm -rf aa.repo
vim xx.repo
[aa](这里是yum源,随便写)
name=aaaaa #(随便写,注意name后面不能出现空格,name必须要出现)
#baseurl=ftp://192.168.50.250/pub/
baseurl=file://mnt/ #(根下面的光盘挂载点/mnt/)
enabled=1 #(enabled:代表是否启用这个yum源,0代表不起用)
gpgcheck=0 #(0代表不对软件包进行密钥验证,1代表对软件包进行密钥验证,如果是1,需要将CentOS公钥导入过来)
yum clear all (清除缓存)
yum list gcc
xx.repo文件可以写入多个源,如果一个源没有找到,会自动跳入下一个源:
[aa]
name=aaaaa
baseurl=file://mnt/ #(根下面的光盘挂载点/mnt/)
enabled=1
gpgcheck=0
[bb]
name=bbbbbb
baseurl=ftp://192.168.60.250/pub/
enabled=1
gpgcheck=0
yum clear all
②.查找
yum list vsftpd
yum list vsftpd\*(如果忘记后面那个是什么单词,可以使用 “转义*”)
yum list vsftpd* (如果是*,那么代表前面只要是vsftp后面包含任意个字符的相似文件,不够准确)
还可以使用search查找
yum search vsftp(将包含vsftp的文件包全部找到)
③.卸载
yum remove vsftpd(后面提示是否卸载,键入y)
yum remove vsftpd -y(不需要提示的话,可以先直接加入 -y 选项)
yum -y remove vsftpd
④.安装
yum install vsftpd\*
yum install vsftpd\* -y
yum -y install vsftpd\*
想知道某个包是由那个命令产生的可以使用
yum whatprovides */
yum whatprovides */iostat(查看iostat命令是由什么包产生的)
这个命令原理类似查找命令:
rpm -qld /mnt/CentOS/*:找每个安装文件下可能产生的安装目录
yum groplist(列出组别)
system-config-packages &
列出组别
yum grouplist 'KDE*'
安装组别
yum groupinstall 'KDE (K 桌面环境)'
删除组别:
yum groupremove 'KDE (K 桌面环境)'
2)yum服务器端配置
ifconfig eth0
df -h
网络配置器 Host-Only(使网络互通)
ping xxxxx
iptables -L -n
iptables -F (清除防火墙)
ping xxxxx
ifconfig eth0
setup(网络配置)
service network restart
ping xxxxx
clear
现在把这台新机器设置为yum源
CD/DVD(IDE)浏览IOS镜像,把光盘挂载上来
选择已连接
mount /dev/cdrom/mnt(进行挂载)
ls /mnt/
vim /etc/yum.repos.d/xx.repo
[aa]
name=aaa
baseurl=file:///mnt
enabled=1
gpgcheck=0
yum install vsftpd -y
iptables -F
services iptables stop
services iptables restart
ftp 192.168.60.251
cp -rvf /mnt/CentOS/* /var/ftp/pub/
ls /var/ftp/pub/
ls /var/ftp/pub -1 | wc -l(查看一共有多少个包)
ls -1 /mnt/CentOS/wc-l
yum install createrepo -y(安装这个包)
createrepo -v /var/ftp/pub | grp ^d
yum clear all
yum list gcc
yum list vsftpd -y
cd /var/ftp
ls
ll
mkdir qq
cd qq/
ls
cp ~/Desktop/linuxqq-v1.0.2-betal.i386.rpm
ls
cd ..
createrepo -v qq/
vim /etc/yum.repose.d/aa.repo
[aa]
name=aaaaa
baseurl=ftp://192.168.60.251/pub
enabled=1
gpgcheck=0
[bb]
name=bbb
baseurl=ftp://192.168.60.251/pub
enabled=1
gpgcheck=0
yum clear all
yum list linuxqq
pkgs.org参考网站
把源码包编译成为RPM包???怎么完成!