软件包就是将应用程序、配置文件和数据打包的产物,所有的linux发行版都采用了某种形式的软件包系统,这使得linux软件管理和在windows下一样方便。suse、red hat、fedora等发行版都是用rpm包,Debian和Ubuntu则使用.deb格式的软件包。
一、编程语言
1.系统级开发:
c/c++:httpd、nginx
golang:docker
2.应用及开发
java:hadoop、hbase
Python:openstack
per/ruby/php
二、程序包管理器
1. Linux程序包管理器,几个发行版本
debian/Ubuntu:dpt、dpkg、deb
redhat:rpm
suse:rpm
2. 获取程序包
1)开源镜像站:
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
2)epel,提供centos众多额外的第三方包,可信任的第三方软件包组织
如:http://mirrors.sohu.com/fedora-epel/7/x86_64/Packages/
https://mirrors.aliyun.com/epel/7/x86_64/Packages/m/
3. rpm命令
rpm命令:rpm [OPTIONS] [PACKAGE_FILE]
# i表示安装 v显示详细过程 h以进度条显示,每个#表示进度
rpm -ivh filename.rpm 安装软件的命令格式
rpm -Uvh filename.rpm 升级软件的命令格式
rpm -e filename.rpm 卸载软件的命令格式
rpm -qpi filename.rpm 查询软件描述信息的命令格式
rpm -qpl filename.rpm 列出软件文件信息的命令格式
rpm -qf filename 查询文件属于哪个 RPM 的命令格式
4.软件包依赖关系
yum工具可以自动搜索依赖关系,并执行安装。rpm软件包在安装的时候,由作者定义依赖关系。
一些自动解决依赖关系软件包管理器:
yum:红帽系列rpm包管理工具
apt-get:deb包管理工具
zypper:suse的rpm包管理工具
yum软件仓库可以根据用户的要求分析出所需要的软件包及其相关的依赖关系,然后自动从服务器上下载软件包并安装到系统。
yum的基本工作机制:
服务端:在服务器上存放了所有RPM软件包,然后以相关的功能区分析每个RPM文件的依赖关系,将这些数据记录成文件存放在服务器的某个特定目录内。
客户端:如果需要安装某个软件,先下载服务器上面记录的依赖性关系文件,通过对服务器端下载的记录数据进行分析,然后取得所有相关软件,一次全部下载下来进行安装。
yum仓库:存储了众多的软件包,以及相关的元数据文件
文件服务器:ftp:// http:// nfs:// file://
yum源的配置文件:/etc/yum.conf
repo仓库文件:/etc/yum.repos.d/CentOS-Base.repo
5. 配置yum源
镜像源地址:http://mirrors.163.com/
第一步:备份现有的repo仓库
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
第二步:下载新的repo源文件
CentOS6:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
CentOS7:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
CentOS8:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
第三步:清空缓存,生成新的缓存
yum clean all
yum makecache
第四步:使用阿里镜像源,出现不能解析地址的信息,可通过以下方法修改相关配置
sed -i -e ‘/mirrors.cloud.aliyuncs.com/d‘ -e ‘/mirrors.aliyuncs.com/d‘ /etc/yum.repos.d/CentOS-Base.repo
第五步:配置epel源
epel(RHEL 7)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
epel(RHEL 6)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
实践: 如何使用光盘当作本地yum仓库:
第一步:挂载光盘至某目录,例如/media/cdrom
mount -r -t iso9660 /dev/cdrom /media/cdrom
第二步: 创建配置文件
[base]
name=CentOS-Base
baseurl=file://media/cdrom
gpgcheck=1
enabled=0
6. yum命令
yum命令的用法:
yum [options] [command] [package ...]
显示仓库列表:
yum repolist [all|enabled|disabled]
显示程序包:
list
yum list [all | glob_exp1] [glob_exp2] [...]
yum list {available|installed|updates} [glob_exp1] [...]
安装程序包:
yum install package1 [package2] [...]
yum reinstall package1 [package2] [...] (重新安装)
升降级程序包:
yum update [package1] [package2] [...]
yum downgrade package1 [package2] [...]
检查可用升级:
yum check-update
卸载程序包:
yum remove | erase package1 [package2] [...]
查看程序包information:
yum info [...]
查看指定的特性(可以是某文件)是由哪个程序包所提供:
yum provides | whatprovides feature1 [feature2] [...]
清理本地缓存:
yum clean [headers|packages|metadata|dbcache|plugins|expire-cache|all]
构建缓存:
yum makecache
搜索:
yum search string1 [string2] [...] 以指定的关键字搜索程序包名及summary信息;
查看指定包所依赖的capabilities:
yum deplist package1 [package2] [...]
查看yum事务历史:
yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
安装及升级本地程序包:
* localinstall rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use install)
* localupdate rpmfile1 [rpmfile2] [...]
(maintained for legacy reasons only - use update)
包组管理的相关命令:
* groupinstall group1 [group2] [...]
* groupupdate group1 [group2] [...]
* grouplist [hidden] [groupwildcard] [...]
* groupremove group1 [group2] [...]
* groupinfo group1 [...]
yum的命令行选项:
--nogpgcheck:禁止进行gpg check;
-y: 自动回答为“yes”;
-q:静默模式;
--disablerepo=repoidglob:临时禁用此处指定的repo;
--enablerepo=repoidglob:临时启用此处指定的repo;
--noplugins:禁用所有插件
三、源代码编译安装
前提条件:准备好开发工具以及开发环境
开发工具:gcc ,make
开发组件: yum groupinstall "Development Tools"
yum groupinstall "Server Platform Development"
第一步:下载源码包,解压
第二步:进入目录,执行脚本configure文件
./configure --prefix=软件安装路径
第三步:执行make命令编译
make是Linux开发套件里面自动化编译的一个控制程序,它通过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc 、ld 以及运行某些需要的程序进行编译的程序。一般情况下,它所使用的 Makefile 控制代码,由 configure 这个设置脚本根据给定的参数和系统环境生成。
第四步:安装make install
实践:源码编译安装nginx
前提:创建nginx用户:useradd -M -s /sbin/nologin nginx
第一步:准备编译环境和安装依赖包:yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
第二步:下载nginx源代码,解压:cd /tmp;wget http://nginx.org/download/nginx-1.12.1.tar.gz;tar -zxvf nginx-1.12.1.tar.gz
第三步:进入源码目录:cd nginx-1.12.1
第四步:执行./configure文件:./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-mail --with-mail_ssl_module
第五步:执行make编译:
第六步:开始安装make install
第七步:配置nginx环境变量:vim /etc/profile.d/nginx.sh 写入 export PATH=/usr/local/nginx/sbin:$PATH
第八步:启动nginx服务,访问页面:
检测Nginx配置是否正确:nginx -t
正确后,在启动:/usr/local/nginx/sbin/nginx
查看nginx的进程号:cat /usr/local/nginx/logs/nginx.pid
Nginx Web 服务器软件安装完成后,程序主目录位于/usr/local/nginx,该目录下的内容分别为conf(主配置文件目录)、html(网站根目录)、logs(日志文件目录)、sbin(主程序目录)
关闭主程序:nginx -s stop
~/.profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件,通常存放清理工作的命令。
执行顺序
登陆shell
登陆shell时,首先执行/etc/profile,之后执行用户目录下的~/.profile,~/.profile中会执行~/.bashrc