Linux软件管理

Linux 软件管理

包管理器

二进制应用程序的组成部分:

二进制文件、库文件、配置文件、帮助文件  

程序包管理器:

  • debian:deb文件, dpkg包管理器

  • redhat: rpm文件, rpm包管理器

  • rpm: Redhat Package Manager

  • RPM Package Manager

包管理器工具

包之间:可能存在依赖关系,甚至循环依赖
解决依赖包管理工具:
  • yum:rpm包管理器的前端工具

  • apt-get:deb包管理器前端工具

  • zypper: suse上的rpm前端管理工具

  • dnf: Fedora 18+ rpm包管理器前端管理工具 *

程序包管理器:

功能:

将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作

包文件组成 (每个包独有)
  • RPM包内的文件
  • RPM的元数据,如名称,版本,依赖性,描述等
  • 安装或卸载时运行的脚本
数据库(公共):/var/lib/rpm
  • 程序包名称及版本
  • 依赖关系
  • 功能说明

管理程序包的方式:

使用包管理器:rpm

使用前端工具:yum, dnf

获取程序包的途径:

(1) 系统发版的光盘或官方的服务器;

CentOS镜像:
[1]https://www.centos.org/download/
[2]http://mirrors.aliyun.com
[3]http://mirrors.sohu.com
[4]http://mirrors.163.com

(2) 项目官方站点
(3) 第三方组织:

Fedora-EPEL:
Extra Packages for Enterprise Linux
Rpmforge:RHEL推荐,包很全
搜索引擎:
http://pkgs.org
http://rpmfind.net
http://rpm.pbone.net
https://sourceforge.net/

(4) 自己制作

注意:第三方包建议要检查其合法性
来源合法性,程序包的完整性

rpm包安装

在 /mnt Packages中,Redhat系列的软件都是以rpm包的方式,统一风格,每一个rpm文件都集成了很多文件。

光盘加载:

mount /dev/sr0 /mnt    (/mnt挂载点) 

机器重启后,不再挂载

rpm安装指令

misc-->rpm -i autofs-5.0.7-99.el7.x86_64.rpm #如果不在Packages目录下,需添加autofs的完整路径

查询软件是否安装完成–>rpm -q autofs
rpm -qa#查询全部已安装软件
rpm -qa |grep auto#模糊搜索
rpm -qa "auto*"
启动软件–>systemctl start autofs
查看开机启动–>systemctl status autofs
设置成为开机启动–>systemctl enable autofs

家目录–>ls /misc#自动将光盘挂载到misc这个文件夹
ls /misc/cd
安装软件–>rpm -ivh /misc/cd/Packages/tree-1.6.0-10.el7.x86_64.rpm#v显示详细过程,h显示详细进度
查询Package的文件列表–>rpm -ql tree
查询版本信息 -->rpm -qi tree
查询包所有文件 -->rpm -qa tree
反向查询文件来自哪个Package(Exa)–>rpm -qf /bin/bash
卸载:rpm -e tree

yum安装指令:

yum原理

     以安装tree包为例:接收到yum install tree指令,先去yum server下载meta data放在一个存储空间里,然后通过meta data去rpm文件中查找相关及所依赖的包,将其下载到一个存储空间,然后进行安装,安装完成后包会被删除,但是meta data会保存下来,下次再安装其他包时会从meta data中查找    

yum的配置信息:

cd /misc/cd/repodata   
cd /etc/yum.repos.d/    

yum源的基本语法:

[base]   #[内容只是个提示,要确保唯一性]   
name=CentOS-$releasever - Base    #描述信息,可写可不写   
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra  
#文件路径   
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/   
#变量$releasever操作系统的主版本号,变量$basearch CPU架构   
gpgcheck=1    #是否校验每个包的合法性   
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7    #公钥路径

yum源文件名不重要,只要后缀是repo就Ok

#!/bin/bash
vim base.repo      
[base]   
name=dentos base   
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/   
gpgcheck=1   
gpgkey=https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7  

cd /var/ache/yum/#yum源文件安装在这个位置

添加epel源

#!/bin/bash
vim epel.repo   
[epel]   
name=epel   
basename=https://mirrors.aliyun.com/epel/7/x86_64/    
gpgcheck = 0  

添加本地光盘路径

vim /etc/yum.repos.d/base.repo    
[base]   
name=centos base   
baseurl=file:///misc/cd   
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/;file:///misc/cd   

gpgcheck = 1   
gpgkey=https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7   
vim yumlist  
#yumlistfile   
#file:///misc/cd   
#http://mirror.centos.org/centos/$releasever/os/$basearch/   
vim /etc/yum.repos.d/base.repo     
[base]       
name=centos bas      
mirrorlist=file:///root/yumlist      
gpgcheck = 1   
gpgkey=https://mirrors.aliyun.com/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7   

安装

yum install sl -y

移除

yum remove sl -y

查看

yum history

运用remove时,包卸载不干净,可以用下面的方法

yum history   
yum history undo id   
#如果后悔undo,可以redo   
yum history redo id -y   

安装包组:

yum groupinstall ""

查看包组信息

yum groupinfo "FTP server"  #不加""可能被认为是两个包   

yum info httpd   #查看包的说明

通过网络下载安装

yum install https://mirrors.aliyun.com/epel/7/x86_64/Packages/h/   hidapi-0.7.0-2.a88c724.el7.x86_64.rpm 

关闭防火墙

systemctl stop firewalld;systemctl disable firewalld 

关闭getenforce

vim /etc/selinux/config   
SELINUX=disabled 

开启httpd服务

systemctl start httpd   
systemctl enable httpd

移除虚拟网卡

yum remove libvirt-daemon

修改默认页面

cd /var/www/html   
echo welcome to magedu! > index.html   
mkdir centos/7/os/x86_64/ -pv    #建立与yum源路径一直文件夹   
#访问 IP地址/centos/7/os/x86_64/   
在yumlist文件中,添加路径 IP地址/centos/7/os/x86_64/   

编译安装

gcc编译器:把文件编译成二进制文件

Example:

gcc hello.c       #默认会生成一个a.out文件   
gcc hello.c -o hello   #生产一个hello文件,系统自动加了执行权限   

make项目管理器

configure脚本–>Makefile.in-->Makefile

C语言源代码编译安装三步骤:

  1. ./configure
    • 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成Makefile
    • 检查依赖到的外部环境,如依赖的软件包
  2. make 根据Makefile文件,构建应用程序
  3. make install 负责文件到相应路径
    开发工具:
    autoconf:生成configure脚本
    automake:生成Makefile.in
    注意:安装前查看INSTALL,README

所有操作必须在解压缩目录

tar xvf httpd.tar.gz   
cd httpd/   
./configure --prefix=/app/httpd   
#提示安装   APR  ,但是实际上提示安装APR-devel  
yum install apr-devel   
yum install apr-util-devel   
yum install pcre-devel   
#yum install gcc   
./configure --prefix=/app/httpd   
ls      #这时我们可以看到在文件夹中已经生成一个configure   
make  
make install   
ls /app/httpd  
#如果已经安装了httpd需要先停掉   
systemctl stop httpd   
#如果要执行自己的程序   
cd /app/httpd/bin   
./apachectl start   
"""这时httpd已经搭建起来"""   
#返回httpd文件夹,进入htdocs文件夹,可以找到index.html,修改初始界面   
echo 'PATH=/app/httpd/bin:$PATH' >> /etc/profile.d/test.sh   
. /etc/profile.d/test.sh   
apachectl 

Example:cmatrix

rz    #将cmatrix复制到当前文件夹   
tar vxf cmatrix..   
cd cmatrix-1.2a  
./configure --prefix=/app/cmatrix   
yum install ncurrses-devel   
make && make install   
cd /app/cmatrix/bin   
./cmatrix    #运行程序   
#把路径写到PATH路径下   
echo 'PATH=PATH=/app/cmatrix/bin:$PATH' >> /etc/profile.d/test.sh   
. /etc/profile.d/test.sh   

为文本增加执行权限

#在文件当前目录下   
chmod +x hello.sh   
#./hello.sh    #相对路径下执行   
#/data/scripts/hello.sh     #绝对路径下执行   
vim /etc/profile.d/test1.sh   
    PATH=/data/scripts:$PATH   
. /etc/profile.d/test1.sh   
hello.sh       #在任意路径下都可执行   
cat hello.sh |bash   #用管道传给bash执行   

一键安装脚本

vim install_cmatrix.sh   
wget http://192.168.20.100/cmatrix-1.2a.tar.gz   
yum install gcc ncurses-devel -y   
tar xvf cmatrix-1.2a.tar.gz   
cd cmatrix-1.2a   
./configure --prefix=/app/cmatrix   
make && make install   
echo 'PATH=/app/cmatrix/bin:$PATH' >> /etc/profile.d/test.sh   

chmod +x intall_cmatrix.sh   
. /etc/profile.d/test.sh   
install_cmatrix    

scp install_cmatrix.sh cmatrix-1.2a.tar.gz 192.168.20.100:/app/httpd/htdocs/

vim install_cmatrix.sh   
wget http://192.168.20.100/cmatrix-1.2a.tar.gz   
yum install gcc ncurses-devel -y    
tar xvf cmatrix-1.2a.tar.gz   
cd cmatrix-1.2a   
./configure --prefix=/app/cmatrix   
make && make install   
echo 'PATH=/app/cmatrix/bin:$PATH' >> /etc/profile.d/test.sh    

curl http://192.168.20.100/install_cmatrix.sh |bash    #远程一键安装         

变量

vim color.sh   
echo -e '\033[$1mCOLOR\033[0m'  #这里出了问题,因为单引号把里面的变量识别为字符串   
color.sh 31  

#$1,$2,…位置变量,用于让脚本在脚本代码中调用用过命令传递给它的参数

vim color.sh   
echo -e “\033[$1mCOLOR\033[0m”    #这里应该用双引号    
color.sh 31    

echo $?#根据$?的返回值是否为0,判断语法是否成功

Bash的组合测试条件

||
rpm -q ftp &> /dev/null || yum install ftp -y #判断ftp是否安装,如果没安装就安装

ping -c1 -w2 station &> /dev/null \    
>  && echo "station1 is up"   
>  ||(echo 'station1 is unreachable';exit 1)    
station1 is up    
"""判断是否ping通,如果Ping通'station1 is up',如果ping不通'station1 is unreachable'"""    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值