linux基础(一):Centos、文件系统、链接、软件安装

一、Centos系统

1.0 Linux目录结构

登录系统后,在命令行界面输入ls:
在这里插入图片描述
树状目录结构:
在这里插入图片描述

以下是对这些目录的解释:

  • /bin:
    bin是Binary的缩写, 这个目录存放着最经常使用的命令。
  • /boot:
    这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
  • /dev :
    dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
  • /etc:
    这个目录用来存放所有的系统管理所需要的配置文件和子目录。
  • /home:
    用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
  • /lib:
    这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
  • /lost+found:
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  • /media linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
  • /mnt:
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
  • /opt:
    这是给主机额外安装软件所摆放的目录。比如你安装一个jdk、MyEclipse、Mysql数据库等则就可以放到这个目录下。默认是空的。
  • /proc:
    这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • /root:
    该目录为系统管理员,也称作超级权限者的用户主目录。
  • /sbin:
    s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
  • /selinux:
    这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
  • /srv:
    该目录存放一些服务启动之后需要提取的数据。
  • /sys:
    这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
    sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
    该文件系统是内核设备树的一个直观反映。
    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统种被创建。
  • /tmp:
    这个目录是用来存放一些临时文件的。
  • /usr:
    这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
  • /usr/bin:
    系统用户使用的应用程序。
  • /usr/sbin:
    超级用户使用的比较高级的管理程序和系统守护程序。
  • /usr/src:内核源代码默认的放置目录。
  • /var:
    这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

Filesystem Hierarchy Standard(文件系统层次化标准)

/boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader)
/dev: 设备文件	/etc:配置文件
/home:用户的家目录,每一个用户的家目录通常默认为
/home/USERNAME
/root:管理员的家目录;
/lib:库文件
/media:挂载点目录,移动设备/mnt:挂载点目录,额外的临时文件系统
/opt:可选目录,第三方程序的安装目录
/proc:伪文件系统,内核映射文件
/sys:伪文件系统,跟硬件设备相关的属性映射文件
/tmp:临时文件, /var/tmp
/var:可变化的文件
/bin: 可执行文件, 用户命令
/sbin:管理命令

在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。 
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,
具体在/var/log 目录下,另外mail的预设放置也是在这里。

1.1 修改主机名

CentoOS 6 :vim /etc/sysconfig/network;NETWORKING=yes;HOSTNAME=node1
CentoOS 7 :vim /etc/hostname;node1

1.2 网络配置

CentoOS 6 :
vim /etc/sysconfig/network-scripts/ifcfg-eth0
修改ONBOOT;BOOTPROTO;
添加IPADDR;NETMASK;GATEWAY;DNS1;DNS2

DEVICE=eth0
TYPE=Ethernet
NM_CONTROLLED=yes

ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.203.60
NETMASK=255.255.255.0
GATEWAY=192.168.203.2
DNS1=192.168.203.2
DNS2=114.114.114.114

CentoOS 7 :

ONBOOT;BOOTPROTO;IPADDR;NETMASK;GATEWAY;DNS1;DNS2
TYPE="Ethernet"    #网络类型(通常是Ethemet)
PROXY_METHOD="none"
BROWSER_ONLY="no"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"   
UUID="e83804c1-3257-4584-81bb-660665ac22f6"   #随机id
DEVICE="ens33"   #接口名(设备,网卡)

BOOTPROTO="static"   #IP的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)
ONBOOT="yes"   #系统启动的时候网络接口是否有效(yes/no)
#IP地址
IPADDR=192.168.10.100 
#掩码
NETMASK=255.255.255.0
#网关  
GATEWAY=192.168.10.2      
#域名解析器
DNS1=192.168.10.2

1.3 关闭防火墙

chkconfig iptables off

1.4 关闭selinux服务

vim /etc/selinux/config;SELINUX=disabled

1.5 关闭sshd服务的DNS以加快SSH登录速度

在命令行输入:“vim /etc/ssh/sshd_config”;UseDNS=no

1.6 克隆虚拟机

先删除70-persistent-net.rules文件
如何删除?
输入命令:“rm -rf /etc/udev/rules.d/70-persistent-net.rules

1.7 分区

umount /boot 卸载分区
mount /dev/sda1 /boot 挂载分区
df -h 显示挂载分区(即磁盘使用情况)
du -h 查看目录或文件大小(文件系统使用情况)

二、文件类型

1 2          3 4    5       6 7          
l rwxrwxrwx. 1 root root    8 Sep  9 14:20 test2 -> test.txt

1  f:普通文件 (f)	d: 目录文件 b: 块设备文件 (block) c: 字符设备文件(character) l: 符号链接文件(symbolic link file) p: 命令管道文件(pipe) s: 套接字文件(socket)
2 文件权限:9位,每3位一组,3组 权限(U,G,O)每一组:rwx(读,写,执行)
3 文件硬链接的次数
4 文件的属主(owner)
5 文件的属组(group)
6 文件大小(size),单位是字节
7 时间戳(timestamp):最近一次被修改的时间

三、链接

硬链接与软链接
ln 文件1 文件2:硬链接(文件1与文件2指向同一份文件,相互独立)
ln -s 文件1 文件2: 软链接(文件1与文件2指向同一份文件,相当于快捷方式)

ln
用于创建硬链接或软链接
ln
可以使用ll -i选项让ll打印文件的inode信息
cp /etc/profile ./
ll –i

创建硬链接
ln profile  ln1

创建软链接:让ln2指向profile, 给profile创建软连接,相当于windows中的快捷方式
ln -s profile ln2
再次打印inode信息查看
[root@node1 ~]# ll -i

如果两个文件inode一样,表示两个文件(ln1和profile)实际上是同一个文件,硬连接。如果inode不一样,但是有ln2->profile,表示ln2是profile的软链接。

注意:ln1、ln2都不能提前创建,或是已经存在的文件,否则报错。
ln: creating symbolic link `ln1’: File exists
软连接删除不会删除源文件
硬链接删除后如果源文件没有硬链接,则文件被删除

如何在不使用mv的情况下移动文件?可以操作硬连接

四、软件安装

4.1 nginx的编译安装

4.1.1 安装 GCC

由于 Nginx 具有很强的可扩展性,需要使用哪些功能,只需通过 with 配置后重新编译即可添加此功能,所以对于 Nginx 的源码安装方式是必须要掌握的。由于 Nginx 是由 C/C++语言编写的,所以对其进行编译就必须要使用相关编译器。对于C/C++语言的编译器,使用最多的是 gcc 与 gcc-c++,而这两款编译器在 CentOS6.5 中是没有安装的,所以首先要安装这两款编译器。gcc,GNU Compiler Collection,GNU 编译器集合,其可以编译多种语言。

4.1.2 安装依赖库

基本的 Nginx 功能依赖于一些基本的库,在安装 Nginx 之前需要提前安装这些库。

  • A.pcre-devel:pcre,Perl Compatible Regular Expressions,Perl 脚本语言兼容正则表达式,为 Nginx 提供正则表达式库。
  • B.openssl-devel:为 Nginx 提供 SSL(安全套接字层)密码库,包含主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
在安装之前需要注意,很多库具有 devel 库与非 devel 库两种。

	devel 库表示 development开发库,比非 devel 库会多出一些头文件、静态库、源码包等。而这些包在运行时不可能用到,
但在开发时有可能用到。所以对于程序员来说,一般都是需要安装 devel 库的。

	不过,在 yum 安装 devel 库时,由于其依赖于非 devel 库,所以其会先自动安装非 devel 库,而后再安装 devel 库。
所以真正在安装时,只需显示的安装 devel 库即可。通过以下命令可以查看到,非 devel 库也被安装了。

1、为了编译nginx源码
yum  install  gcc  gcc-c++ -y
2、用于支持https协议
yum  install  openssl  openssl-devel -y
3、解析正则表达式
yum install  pcre  pcre-devel -y
4、压缩 gzip  deflate
yum  install  zlib  zlib-devel -y

nginx下载地址:http://nginx.org/en/download.html
 
5、上传到linux的/opt目录下
6、解压
	tar -zxf nginx-1.8.1.tar.gz
7、配置
cd /opt/nginx-1.8.1
	./configure  --help查看帮助信息
	./configure    ./ 相当于将当前可执行文件添加到PATH。
./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_gzip_static_module 
--error-log-path=/var/log/nginx/nginx.log --pid-path=/var/log/nginx/pid

8、编译
生成脚本及配置文件:make
编译步骤,根据Makefile文件生成相应的模块
make

9、安装
make install

10、清空上次配置的信息
make clean

11、查看软件安装目录
cd ../nginx
ls
conf  html  logs  sbin
	conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心最主要的配置文件,
其他的.conf则是用来配置nginx相关的功能的,例如fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件,
配置文件一般都有个样板配置文件,是文件名.default结尾,使用的使用将其复制为并将default去掉即可。
	html:目录中保存了nginx服务器的web文件,但是可以更改为其他目录保存web文件,
另外还有一个50x的web文件是默认的错误页面提示页面。
	logs:用来保存nginx服务器的访问日志错误日志等日志,logs目录可以放在其他路径,比如/var/logs/nginx里面。
	sbin:保存nginx二进制启动脚本,可以接受不同的参数以实现不同的功能。

12、启动nginx
cd ../sbin/
ls
nginx
./nginx
测试:浏览器地址栏中输入http://192.168.20.101/
 
出现该界面说明nginx安装成功。

4.2 RPM

4.2.1 概念及优点

4.2.1.1 RPM(RedHat Package Manager)安装管理

这个机制最早是由Red Hat开发出来,后来实在很好用,因此很多 distributions(发行版)就使用这个机制来作为软件安装的管理方式 。包括Fedora,CentOS,SuSE等等知名的开发商。

  • redhat提供了rpm管理系统
  • 已经编译的软件包:针对不同的平台系统编译目标软件包
  • 操作系统维护安装信息
  • 软件包包含依赖检查,这是人需要参与处理的。你得下载它需要的所有依赖包并安装,才能安装一个rpm软件。
4.2.1.2 RPM的优点
  1. RPM内含已经编译过的程序与配置文件等数据,可以让用户免除重 新编译的困扰
  2. RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可 避免文件被错误安装
  3. RPM文件本身提供软件版本信息、相依属性软件名称、软件用途说明、软件所含文件等信息,便于了解软件
  4. RPM管理的方式使用数据库记录 RPM 文件的相关参数,便于升级 、移除、查询与验证

4.2.2 rpm安装rpm -ivh package_name

选项与参数:
-i :install的意思
-v :察看更细部的安装信息画面
-h :以安装信息列显示安装进度
安装单个rpm包
rpm -ivh package_name
安装多个rpm包
rpm -ivh a.i386.rpm b.i386.rpm *.rpm
安装网上某个位置rpm包
rpm -ivh http://website.name/path/pkgname.rpm

4.2.3 rpm查询

  • 简单原理:rpm在查询的时候,其实查询的地方是在/var/lib/rpm/ 这个目录下的数据库文件
[root@node1 ~]# ll /var/lib/rpm/ 
total 58272 
-rw-r--r--. 1 root root  5500928 Mar  8 20:27 Basenames 
-rw-r--r--. 1 root root    12288 Mar  4 23:06 Conflictname 
-rw-r--r--  1 root root    24576 Mar  8 20:42 __db.001 
-rw-r--r--  1 root root   229376 Mar  8 20:42 __db.002

rpm查询已安装软件,选项与参数:
-q :仅查询,后面接的软件名称是否有安装
-qa :列出所有的,已经安装在本机Linux系统上面的所有软件名称 !!!
-ql :列出该软件所有的文件与目录所在完整文件名 !!
-qi :列出该软件的详细信息,包含开发商、版本和说明等 !!
-qc :列出该软件的所有配置文件 !
-qd :列出该软件的所有说明文件
-qR :列出和该软件有关的相依软件所含的文件
-qf :由后面接的文件名,找出该文件属于哪一个已安装的软件
查询某个 RPM 文件内含有的信息:
-qp[icdlR]:
注意 -qp 后面接的所有参数以上面的说明一致。但用途仅在于找出 某个 RPM 文件内的信息,而非已安装的软件信息

- 案例1:查找是否安装jdk
rpm -qa |grep jdk
jdk-1.7.0_80-fcs.x86_64

- 案例2:查询jdk所包含的文件及目录
rpm -ql jdk

- 案例3:查看jdk包的相关说明
rpm -qi jdk
Name        : jdk                          Relocations: /usr/java 
Version     : 1.7.0_80                   Vendor: Oracle Corporation
Release     : fcs                 Build Date: 2015年04月11日 星期六 11时15分36秒
Install Date: 2019年11月27日 星期三 19时41分29秒      
Build Host: sca00efd.us.oracle.com
Group       : Development/Tools             Source RPM: jdk-1.7.0_80-fcs.src.rpm
Size        : 219404663                       License: http://java.com/license
Signature   : (none)
Packager    : Java Software <jre-comments@java.sun.com>
URL         : URL_REF
Summary     : Java Platform Standard Edition Development Kit
Description :
The Java Platform Standard Edition Development Kit (JDK) includes both
the runtime environment (Java virtual machine, the Java platform classes
and supporting files) and development tools (compilers, debuggers,
tool libraries and other tools).
The JDK is a development environment for building applications, applets
and components that can be deployed with the Java Platform Standard
Edition Runtime Environment.

案例4:列出iptables的配置文件
rpm -qc iptables
/etc/sysconfig/iptables-config
(无显示说明不需要配置文件)

案例5:查看apr需要的依赖
yum install apr
rpm -qR apr

rpm默认安装的路径
1./etc 一些配置文件放置的目录,例如/etc/crontab
2./usr/bin 一些可执行文件
3./usr/lib 一些程序使用的动态链接库
4./usr/share/doc 一些基本的软件使用手册与说明文件
5./usr/share/man 一些man page(Linux命令的随机帮助说明)文件

4.2.4 rpm安装jdk

1.将上传到/opt目录下
ls
jdk-7u80-linux-x64.rpm  nginx  nginx-1.8.1  nginx-1.8.1.tar.gz

2.安装当前目录下的jdk-7u80-linux-x64.rpm
rpm -ivh jdk-7u80-linux-x64.rpm 
Preparing...                ########################################### [100%]
   1:jdk                    ########################################### [100%]
Unpacking JAR files...
	rt.jar...
	jsse.jar...
	charsets.jar...
	tools.jar...
	localedata.jar...
	jfxrt.jar...
	
3.查找java安装目录的位置:
whereis java
java: /usr/bin/java
ll /usr/bin/java
lrwxrwxrwx 1 root root 26 1127 19:41 /usr/bin/java -> /usr/java/default/bin/java
cd /usr/java
ls
default  jdk1.7.0_80  latest
cd jdk1.7.0_80/
[root@node1 jdk1.7.0_80]# pwd
/usr/java/jdk1.7.0_80

4.配置环境变量
vim /etc/profile
加入以下两行代码:
export JAVA_HOME=/usr/java/jdk1.7.0_80
export PATH=$PATH:$JAVA_HOME/bin
![在这里插入图片描述](https://img-blog.csdnimg.cn/740bf5a4998f4ad881aec7deac8fd16f.png)

5.让配置生效,使用.命令,或者source命令
source /etc/profile

6.测试安装配置是否成功
[root@node1 jdk1.7.0_80]# java -version
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
[root@node1 jdk1.7.0_80]# jps
3926 Jps
成功!

4.2.5 rpm安装MySQL

1.从MySQL官网下载MySQL的安装包:
	https://downloads.mysql.com/archives/community/
	
2.需要下载mysql的四个rpm包:
	mysql-community-client-5.7.19-1.el6.x86_64.rpm
	mysql-community-common-5.7.19-1.el6.x86_64.rpm
	mysql-community-libs-5.7.19-1.el6.x86_64.rpm
	mysql-community-server-5.7.19-1.el6.x86_64.rpm

3.rpm安装mysql
3.1 查找当前系统中安装的MySQL:
rpm -qa | grep mysql
mysql-libs-5.1.71-1.el6.x86_64
3.2 将上一步找到的mysql相关的包都删除
rpm -e mysql-libs-5.1.71-1.el6.x86_64
error: Failed dependencies:
	libmysqlclient.so.16()(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64
	libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64
	mysql-libs is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64
![在这里插入图片描述](https://img-blog.csdnimg.cn/a96871f75847475d8391b557bd647274.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTMwNzc1Mzc=,size_12,color_FFFFFF,t_70,g_se,x_16)
rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
rpm -qa | grep mysql

3.3 检查并删除老版本mysql的开发头文件和库(如果有的话)
find / -name 'mysql*'
rm -fr /usr/lib/mysql
rm -fr /usr/include/mysql
rm -f /etc/my.cnf
rm -fr /var/lib/mysql
rm -fr /usr/share/mysql
注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除

4、安装perl
yum install perl -y

5、下载numactl-2.0.9-2.el6.x86_64.rpm并安装
cd /opt
mkdir apps
rpm -ivh numactl-2.0.9-2.el6.x86_64.rpm

6、安装mysql(有顺序要求)
rpm -ivh mysql-community-common-5.7.19-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.19-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.19-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.19-1.el6.x86_64.rpm
a)或执行:rpm -ivh mysql-community-*,让系统自己判断rpm安装顺序

7、修改/etc/my.cnf文件,设置数据库的编码方式:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8

8、如果出现错误,请查看/etc/my.cnf文件中指定的错误log日志的文件
log-error=/var/log/mysqld.log

9、启动MySQL:service mysqld start

10、找到随机密码:
a)在/var/log/mysqld.log中有一行:
b)A temporary password is generated for root@localhost,后面就是随机密码
#mysql -uroot -p"yAe7QGVJ;HlR"使用随机密码登录系统

11、修改默认密码:
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=6;
mysql> set password for 'root'@'localhost'=password('123456');

12、登陆mysql查看编码方式:
a)mysql> show variables like '%character%';

13、给root设置远程登录权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

14、设置msyql开机启动
exit
chkconfig mysqld on

15、安装完毕!

4.2.6 rpm卸载

找出与apr有关的软件名称,并尝试移除apr这个软件

rpm -qa|grep apr
apr-1.3.9-5.el6_9.1.x86_64
rpm -e apr-1.3.9-5.el6_9.1.x86_64
rpm -qa|grep apr 

4.2.7 Redhat提供了rpm管理体系

已经编译的软件包:针对不同的平台系统编译目标软件包
操作系统维护安装信息
软件包包含依赖检查,但,还需人为解决

rpm安装:
	rpm -ivh  filename

rpm升级:
	rpm -Uvh
	rpm -Fvh

rpm卸载:
	rpm -e PACKAGE_NAME

rpm查询
	rpm -qa : 查询已经安装的所有包
	rpm -q  PACKAGE_NAME: 查询指定的包是否已经安装
	rpm -qi PACKAGE_NAME: 查询指定包的说明信息
	rpm -ql PACKAGE_NAME: 查询指定包安装后生成的文件列表
	rpm -qc PACEAGE_NEME:查询指定包安装的配置文件
	rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件
	rpm -q --scripts PACKAGE_NAME: 查询指定包中包含的脚本	
	rpm -qf /path/to/somefile: 查询文件是由哪个rpm包安装生成的	
	如果某rpm包尚未安装,需查询其说明信息、安装以后会生成的文件
	rpm -qpi /PATH/TO/PACKAGE_FILE
	rpm -qpl 

4.3 yum安装

4.3.1 epel是什么?(了解)

全称:Extra Packages for Enterprise Linux,企业版Linux的额外软件包。它是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样的衍生版本。

我们可以很容易地通过yum命令从EPEL源上获取上万个在CentOS自带源上没有的软件。EPEL提供的软件包大多基于其对应的Fedora软件包,不会与企业版Linux发行版本的软件发生冲突或替换其文件。更多关于EPEL 项目的细节可以到以下网站获取:https://fedoraproject.org/wiki/EPEL。

RHEL/CentOS系统有许多第三方源,比较流行的比如RpmForge,RpmFusion,EPEL,Remi等等。然而需要引起注意的是,如果系统添加了多个第三方源,可能会因此产生冲突——一个软件包可以从多个源获取,一些源会替换系统的基础软件包,从而可能会产生意想不到的错误。已知的就有Rpmforge与EPEL会产生冲突。对于这些问题我们建议,调整源的优先权或者有选择性的安装源,但是这需要复杂的操作,如果你不确定如何操作,我们推荐你只安装一个第三方源。
在这里插入图片描述

4.3.2 yum命令:

yum repolist  #查看yum源
yum clean all
yum makecache
yum update  #更新系统使用该命令
查询:
yum list  列出系统中已经安装的和可以安装的包
yum list | grep mysql
yum search在yum源搜索指定的包
yum search mysql
yum info打印指定包的描述信息
yum info mysql-mmm-agent.noarch
安装和卸载:
yum install xxx
yum remove|erase xxx
yum分组命令:
查询yum源中rpm包的组信息
yum grouplist
查看指定组的信息
yum groupinfo "Chinese Support"
yum groupinstall
yum groupinstall "Chinese Support"
yum groupremove删除指定软件组
yum groupremove "Chinese Support"

yum groupupdate更新指定软件组
yum groupupdate "Chinese Support"

4.3.3 关于软件源(扩展)

centos切换软件源:
本地软件源
通过nginx发布内部软件源
让Centos的软件源指向其他源

cd /etc/yum.repos.d/
CentOS-Base.repo

4.3.3.1 本地软件源
cd  /etc/yum.repos.d/
cp  CentOS-Base.repo   localRepo.repo
mkdir  old
mv  CentOS-*  old     做备份

将原来的文件备份到一个位置
vim   localRepo.repo
  [base]
  name=CentOS-$releasever - Base
  #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
  baseurl=file:///mnt
  gpgcheck=0
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

插入DVD的ISO镜像文件(CentOS-6.8-x86_64-bin-DVD1.iso),挂载到/mnt目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/7900d1f9cf6e4bf890359fa7246b667d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfNTMwNzc1Mzc=,size_10,color_FFFFFF,t_70,g_se,x_16)

mount  /dev/cdrom  /mnt
cd  /mnt
查看其中的内容
cd  /mnt/Packages
ls  -l  |  wc  -l
统计出该目录有多少个rpm包
![在这里插入图片描述](https://img-blog.csdnimg.cn/b03a7b2315914b5297aa7bd915cd23c5.png)

yum  clean  all    清空本地元数据缓存
yum  makecache    创建本地元数据缓存

yum  repolist查看元数据的具体信息
![在这里插入图片描述](https://img-blog.csdnimg.cn/cc7824ce6e48431bb4742b42dbd618de.png)
yum  install  pcre
yum  install  gcc

至此,本地yum源配置完成。
4.3.3.2 发布局域网yum源

tomcat发布自定义的yum源

tomcat
解压tomcat的tar包:
tar -zxf apache-tomcat-7.0.68.tar.gz

首先将dvd1和dvd2的内容从node2的/mnt目录拷贝到tomcat的webapps/ROOT/目录
在这里插入图片描述
启动tomcat
在这里插入图片描述

在node1的tomcat.repo中进行配置:
在这里插入图片描述

配置tomcat.repo:
[base]
name=CentOS-$releasever - Base - tomcat
baseurl=http://node2:8080
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

yum clean all
yum makecache
就可以了

4.3.2.3 CentOS使用其他源

如果使用清华的,请使用:
https://mirrors.tuna.tsinghua.edu.cn/help/centos/下的centos6的内容
将该内容贴到/etc/yum.repos.d/mytsinghua.repo中
yum clean all
yum makecache
即可

使用阿里巴巴的源

查看帮助信息
在这里插入图片描述
在这里插入图片描述

CentOS
1、备份
在这里插入图片描述
2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/
CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3、之后运行yum makecache生成缓存
4、其他
非阿里云ECS用户会出现 Couldn’t resolve host ‘mirrors.cloud.aliyuncs.com’ 信息,不影响使用。用户也可自行修改相关配置: eg:

sed -i -e ‘/mirrors.cloud.aliyuncs.com/d’ -e ‘/mirrors.aliyuncs.com/d’ /etc/yum.repos.d/CentOS-Base.

需要yum clean all
yum makecache

就可以使用aliyun的yum源了。

4.3.2.4 了解

Usage: yum [options] COMMAND
List of Commands:
check Check for problems in the rpmdb
check-update Check for available package updates
clean 移除缓存的数据
deplist 列出包的依赖
distribution-synchronization Synchronize installed packages to the latest available versions
downgrade downgrade a package
erase 从系统中移除一个或几个包
groupinfo 打印软件组的细节信息
groupinstall 在系统中安装一组软件包
grouplist 列出可用的软件包
groupremove 从系统中移除一组软件包
help Display a helpful usage message
history Display, or use, the transaction history
info Display details about a package or group of packages
install 在系统中安装一个或几个软件包
list 列出包信息或一组包的信息
load-transaction load a saved transaction from filename
makecache 生成元数据缓存
provides 哪个包提供了指定的值。
reinstall 重新安装一个软件包
repolist 打印配置的软件源
resolvedep Determine which package provides the given dependency
search 搜索指定的包
shell Run an interactive yum shell
update Update a package or packages on your system
upgrade Update packages taking obsoletes into account
version Display a version for the machine and/or available repos.

4.3.2.5 基于rpm包管理

提供rpm仓库

repo:/etc/yum.repos.d/
	[repoID]
	baseurl=
	http://
	file://
	ftp://
	gpgcheck=1/0
	enable=0/  1

repo国内源:
	http://mirrors.aliyun.com
	centos-->help
	before:yum install wget
	....
repo本地目录源:
	mount /dev/cdrom /mnt
	vi /etc/yum.repos.d/local.repo
	[local]
	baseurl=file:///mnt
	gpgcheck=1
	enable=1

yum命令:
	yum repolist
	yum clean all   //清除缓存
	yum makecache  
	yum update
	
查询:
	yum list
	yum search
	yum info

安装&卸载:
	yum install 
	remove|erase

分组
	yum grouplist
	yum groupinfo
	yum groupinstall
	yum groupremove
	yum groupupdate

yum 的 repo 变成aliyun  || 本地DVD
yum grouplist
yum groupinstall "Chinese Support"
echo $LANG
en_US.UTF-8
LANG=zh_CN.UTF-8

增加epel的repo:
	http://mirrors.aliyun.com
	epel>>>>>help
	wget centos6.......
	
	yum clean all
	yum makecache
	yum search man-pages
	yum install man man-pages man-pages-zh-CN
【【【【 man bash 】】】】

4.5 软件包管理补充

[root@bogon ~]# cd /etc/yum.repos.d/
[root@bogon yum.repos.d]# ll
没有发现第三方源,需要我们自己在CentOS上安装epel(Extra Packages for Enterprise Linux,企业版Linux的额外软件包)

Epel是什么?
它是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样的衍生版本。

我们可以很容易地通过yum命令从EPEL源上获取上万个在CentOS自带源上没有的软件。EPEL提供的软件包大多基于其对应的Fedora软件包,不会与企业版Linux发行版本的软件发生冲突或替换其文件。更多关于EPEL 项目的细节可以到以下网站获取:https://fedoraproject.org/wiki/EPEL。

RHEL/CentOS系统有许多第三方源,比较流行的比如RpmForge,RpmFusion,EPEL,Remi等等。然而需要引起注意的是,如果系统添加了多个第三方源,可能会因此产生冲突——一个软件包可以从多个源获取,一些源会替换系统的基础软件包,从而可能会产生意想不到的错误。已知的就有Rpmforge与EPEL会产生冲突。对于这些问题我们建议,调整源的优先权或者有选择性的安装源,但是这需要复杂的操作,如果你不确定如何操作,我们推荐你只安装一个第三方源。

在CentOS 上安装EPEL,要想安装EPEL,我们先要下载EPEL的rpm安装包。CentOS/RHEL下的6.x和5.x版本下载页面如下:
http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

根据你的CentOS 版本来选择正确的下载地址。请注意EPEL 的安装包是独立编译的,所以它可以安装在32位和64位系统中。

  1. 确认你的CentOS 的版本
    首先通过以下命令确认你的CentOS 版本
    [root@tedu yum.repos.d]# cat /etc/redhat-release
    CentOS release 6.5 (Final)
  2. 下载EPEL 的rpm 安装包
    现在从上面的地址下载CentOS 版本所对应的EPEL 的版本
    [root@tedu yum.repos.d]# wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
    –2016-11-30 23:21:09-- http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
    正在解析主机 download.fedoraproject.org… 209.132.181.16, 152.19.134.142,
    174.141.234.172, …
    正在连接 download.fedoraproject.org|209.132.181.16|:80… 已连接。
    [root@tedu yum.repos.d]# ll
    总用量 32
    -rw-r–r–. 1 root root 1926 11月 27 2013 CentOS-Base.repo
    -rw-r–r–. 1 root root 638 11月 27 2013 CentOS-Debuginfo.repo
    -rw-r–r–. 1 root root 630 11月 27 2013 CentOS-Media.repo
    -rw-r–r–. 1 root root 3664 11月 27 2013 CentOS-Vault.repo
    -rw-r–r–. 1 root root 14540 11月 5 2012 epel-release-6-8.noarch.rpm
  3. 安装EPEL
    通过以下命令安装EPEL 软件包
    [root@tedu yum.repos.d]# rpm -ivh epel-release-6-8.noarch.rpm
    非root账户登录可以使用:sudo rpm -ivh epel-release-6-8.noarch.rpm
    warning: epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
    Preparing… ########################################### [100%]
    1:epel-release ########################################### [100%]
  4. 检查EPEL 源
    安装好EPEL 源后,用yum 命令来检查是否添加到源列表
    [root@tedu yum.repos.d]# yum repolist
    Loaded plugins: fastestmirror, refresh-packagekit, security
    Loading mirror speeds from cached hostfile
    epel/metalink | 5.0 kB 00:00
    base: mirrors.tuna.tsinghua.edu.cn
    epel: mirrors.tuna.tsinghua.edu.cn
    extras: mirrors.yun-idc.com
    updates: mirrors.yun-idc.com
    epel | 4.3 kB 00:00
    epel/primary_db | 5.8 MB 00:09
    repo id repo name status
    base CentOS-6 - Base 6,696
    epel Extra Packages for Enterprise Linux 6 - x86_64 12,131
    extras CentOS-6 - Extras 62
    updates CentOS-6 - Updates 677
    repolist: 19,566
    EPEL已经在repo 后列出,并且显示提供了上万个软件包,所以EPEL 已经安装到你的CentOS了。EPEL源的配置安装到了 /etc/yum.repos.d/epel.repo 文件。

现在来试一下从EPEL 获取软件包
[root@tedu yum.repos.d]# yum install htop
[root@tedu yum.repos.d]# rpm -qa |grep htop
htop-1.0.3-1.el6.x86_64

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值