6 软件的安装

6 软件包管理

6.1 简介

软件包分类:

源码包 源代码(大多数是C语言) 安装时慢,容易报错

    >脚本安装包 对源码包进行改装,使安装更简单,不多。

rpm包  二进制包 Ubuntu系列的二进制包不是rpm,这是根本不同

 

源码包优点:

开源,如果有足够的能力,可以修改源代码

可以自由选择所需的功能

软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高(比rpm5%

卸载方便(直接把安装目录删掉)

 

源码包缺点:

安装过程步骤较多,尤其安装较大的软件集合(如LAMP环境搭建),容易出现拼写错误

编译过程时间较长,安装比二进制安装时间长

因为是编译安装,安装过程中一旦报错新手很难解决

用源码包安装一个Linux大概用3天(老手)

 

 

二进制包优点:

包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询、卸载

安装速度比源码包安装快得多

 

二进制包缺点:

经过编译,不再可以看到源代码

功能选择不如源码包灵活

依赖性

 

6.2 包命名与依赖性

httpd-2.2.15-15.e16.centos.1.i686.rmp

httpd 包名

2.2.15 版本

15 发布次数

e16.centos 适合的Linux平台

i686 适合的硬件平台  noarch 表示任何Linux版本都可以安装

rpm rpm包扩展名

包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径。安装、升级操作

包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库。查询、卸载操作

 

树形依赖 a -> b -> c

环形依赖 a -> b -> c -> a  解决办法:a b c 同时安装

 

RPM包库依赖  以 .so.2 结尾,不是独立的,是某个软件包中的文件

模块依赖 查询网站 www.rpmfind.net,输入xxx.so.2可以查看属于哪个包。

只要把包含此文件的软件安装上即可。


6.3 安装与升级

安装

rpm -ivh 包全名

-i  install

-v  verbose

-h  hash  显示

实验步骤:

1、先将光盘挂载:mount -t iso9660 /dev/sr0 /media

2cd /media/Packages

3、此时就可用  rpm -ivh 包全名 命令进行安装了

 

升级

rpm -Uvh 包全名

-U upgrade 升级

 

卸载

rmp -e 包名

-e erase 卸载

    --nodeps 不检查依赖性

 

6.4 查询

查询功能非常常用

 

查询是否安装

rpm -q 包名

rpm -qa

-q query 查询

     -a all 所有

rpm -qa| grep httpd   此命令查询所有和httpd相关的包安装信息    |管道符

 

查询软件包详细信息

rpm -qi 包名 #查询已安装的包信息

rpm -qip 包全名 #查询未安装包的信息,这些信息已经在包中写好

-i information 查询软件信息

     -p package 查询未安装包信息

 

查询包中文件安装位置 包的安装位置都是默认的

rpm -ql 包名

rpm -qlp 包全名 查询未安装包打算的位置,已在包中设置好

-l list 列表

 

查询系统文件属于哪个RPM

rpm -qf 系统文件名

-f file 查询系统文件属于哪个软件包      etc目录下都是系统的配置文件


查询软件包的依赖性

rpm -qR 包名

rpm -qRp 包全名 查询未安装包的依赖性

-R requires 查询软件包的依赖性

 

6.5 校验

RPM包校验 判断系统文件是否被更改

 

rpm -V 已安装包名

-V verify 校验指定RPM包中的文件

 

例:rpm -V httpd

如果出现任何信息,则表示没有任何修改。

如果有修改,会显示“修改标志位 文件名”

 

修改标志位有8位信息   点(.)代表未被修改

S 文件大小是否修改

M 文件类型 或者 文件权限(rwx)是否修改

5 文件MD5校验(文件内容是否修改) MD5 -- 一种加密方式

D 设备中,从代码是否改变

L 文件路径是否修改

U 文件所有者是否修改

G 文件所属组是否修改

T 文件修改时间是否修改

 

文件类型(对应上面的M

c config file 配置文件

d documentation 普通文档

g ghost file 鬼文件 很少见 就是该文件不应该被这个RPM包包含

l license file 授权文件

r read me 描述文件

 

6.6 文件提取

目的:从rpm包中提取指定文件,用于恢复某些文件。

 

rpm2cpio 包全名 | cpio -idv . 文件绝对路径

#rpm2cpio命令可将rpm包转换为cpio处理格式

#cpio 是一个标准工具,用于创建软件档案文件和从档案文件中提取文件

 

cpio 选项 < [文件|设备]

-i copy-in模式,还原

-d 还原时自动新建目录

-v 显示还原过程

 

rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.e16.i686.rpm | cpio -idv . /bin/ls

提取RPM包中ls命令到当前目录的/bin/ls

 

6.7 yum在线管理

yum在线管理  redhat收费 centos免费

 

内网:需配置ip 子网掩码

公网:还需配置 网关 DNS

 

IP地址配置:

方法一

setup   redhat系列专有命令

service network restart

 

方法二

vi /etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT="no"改为 ONBOOT="yes" #启动网卡

如果文件中没有设置DNS,则添加DNS1=1114.114.114.114

service network restart

 

网络yum源:  

(.repo都是合法的yum源 默认是CentOS-Base.repo生效)

配置文件为/etc/yum.repos.d/CentOS-Base.repo

这个文件默认已经配置好了,不需要更改

 

[base] 容器名称,一定要放在[]

name   容器说明,可以自己随便写

mirrorlist  镜像站点

baseurl  yum源服务器的地址。默认是CentOS官方yum源服务器,如果觉得慢,可以改成别的yum源地址

enabled  此容器是否生效,不写默认为1,代表生效

gpgcheck   RPM数字证书是否生效,如果是1,则生效

gpgkey  数字证书公钥文件保存位置,不用修改

 

查询:

yum list  #查询所有可用软件包列表

yum search 关键字  #搜索服务器上所有和关键字相关的包   yum全用包名 RPM则有包名和包全名之分

 

安装:

yum -y install 包名

-y 自动回答yes   

例:yum -y install gcc

 

升级:

yum -y update 包名

例:yum -y update  //此命令升级所有软件包,包括内核,慎用!

 

卸载:

yum -y remove 包名

#不要用yum卸载软件包!!!

会将其依赖的包卸载,出现别的问题。

 

服务器使用的原则:

1.最小化安装

2.使用什么软件,安装什么软件

3.尽量不卸载软件

 

yum软件组管理命令:

yum grouplist  #列出所有可用的软件组列表

yum groupinstall 软件组名  #安装指定软件组,组名可用grouplist查询,如果组名有空格,用双引号引起来

yum groupremove 软件组名   #卸载指定软件组

 

6.8 yum光盘管理

 

1> 挂载光盘  mount -t iso9660 /dev/sr0 /media

 

2> 让网络yum源文件失效

方法一:将所有选项都置成enable=0

方法二:yum源检测的是.repo后缀名  所以改名即可

 

    mv CentOS-Base.repo CentOS-Base.repo.bak

    mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak

    mv CentOS-Vault.repo CentOS-Vault.repo.bak

 

3> 修改光盘yum

   vim CentOS-Media.repo

修改两处:

   baseurl=file:///mnt/cdrom/   #地址为自己的光盘挂载点,并把其他地址注释掉

   enabled=1  #让此yum源生效

 

yum list | more  分屏显示

 

注释有严格格式,最好单行顶格写注释

 

6.9 源码包与RPM包的区别

安装之前:概念上的区别

安装之后:安装位置不同

 

RPM包 系统指定的默认位置,不要人为手工修改安装目录

/etc/    配置文件

/usr/bin/  可执行命令

/usr/lib/  函数库

/usr/share/doc/  使用手册

/usr/share/man/  帮助文件


源码包 人为手工指定安装位置

一般是 /usr/local/软件名/

 

安装位置不同带来的影响:

RPM包安装的服务可以使用系统服务管理命令(service)来管理,--启动、重启、关闭

例如RPM包安装的Apache的启动方法是:

   /etc/rc.d/init.d/httpd start    #/etc/rc.d/init.d/是所有服务的安装路径  或者

   service httpd start  redhat系列专有命令,工作原理:去/etc/rc.d/init.d/目录下去找httpd服务


源码包安装的服务只能通过绝对路径进行管理:

   /urs/local/apache2/bin/apachectl start

 

6.10 源码包的安装过程

源码包安装注意事项:

源码包保存位置  /usr/local/src/

软件安装位置    /usr/local

如何确定安装过程报错?安装过程停止并出现errorwarningno的提示

 

安装Apache源码包过程:

1、下载源码包到/usr/local/src/

2、解压缩下载的源码包

3、(可选)du -sh 文件名/目录  查看文件夹大小  disk usage

     summarize

     human

4、进入解压缩目录

两个重要文件:INSTALL(安装说明文件)、README(使用说明文件)

5、查看INSTALL文件内容

INSTALL关键内容

$ ./configure --prefix=PREFIX

$ make

$ make install

$ PREFIX/bin/apachectl start

 

./configure  软件配置与检查,有三个作用

>定义需要的功能选项

>检测系统环境是否符合安装要求

>把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑

 

6./configure --prefix=/usr/local/apache2    #跟安装路径,此命令完成后,出现Makefile文件

7make    #编译;如果出错,make clean 命令来清空产生的临时文件

8make install    #编译安装,此步真正向安装目录写入文件

9、安装完成后,/usr/local/apache2/bin/apachectl start

 

源码包的卸载:

不需要卸载命令,直接删除安装目录即可

不会遗留任何垃圾文件

 

 

源码包 RPM包 如何选择?

用途

对外访问(如httpd),则采用源码包安装

本地应用(如gcc),则采用RPM

 

6.11 脚本安装包

>脚本安装包并不是独立的软件包类型,常见安装的是源码包

>是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装

>非常类似于Windows下软件的安装方式

 

常见的脚本安装包是硬件的驱动

 

./setup.sh

 

1 下载软件

2 解压缩,并进入解压缩目录

3 执行安装脚本

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STD函数的内部计算公式

各股票软件的标准差函数STD是不同的&#xff0c;而布林线的上下轨是以STD为基础计算出来的&#xff0c;所以使用布林线应小心。以2008/3/28的上证综指为例&#xff0c;利用如下代码&#xff1a;"收盘价3日STD:STD(CLOSE,3);"&#xff0c;三日收盘价分别是&#xff1a…

caffe路径正确,却读不到图片

调试caffe&#xff0c;用已有的网络训练自己的数据集的时候&#xff08;我这里做的是二分类&#xff09;。在生成均值文件之后&#xff0c;开始train&#xff0c;发现出现了这个问题。 1&#xff0c;路径正确&#xff0c;却读不到图片。 [db_lmdb.hpp:15] Check failed: mdb_st…

Eclipse可以执行jsp文件却无法访问Tomcat主页

点击Servers,然后双击本地的Tomcat服务器 出现如下界面 这里要选择第二项 再重新启动Tomcat就行了 转载于:https://www.cnblogs.com/lls1350767625/p/10452565.html

caffe调用的一个例子

本文是学习Caffe官方文档"ImageNet Tutorial"时做的&#xff0c;同样由于是Windows版本的原因&#xff0c;很多shell脚本不能直接使用&#xff0c;走了不少弯路&#xff0c;但是收获也不少。比如&#xff1a;如何让shell脚本在Windows系统上直接运行、如何去用Caffe给…

孔铜的铜厚

---恢复内容开始--- 表面处理方式注释&#xff1a; 喷锡 喷锡铅合金是一种最低成本PCB表面有铅工艺&#xff0c;它能保持良好的可焊接性。但对于精细引脚间距(<0.64mm)的情况&#xff0c;可能导致焊料的桥接和厚度问题。 无铅喷锡 一种无铅表面处理工艺&#xff0c;符合“环…

1 kafka简介

Publish-subscribe distributed messaging system. A distributed commit log. kafka集群中的服务器都叫broker。 客户端有两类&#xff1a;producer、consumer。 客户端和broker之间使用TCP协议。 不同业务系统的消息通过topic进行区分。 消息的topic会分区&#xff0c;以…

各种机器学习的优缺点及应用场景

目录 正则化算法&#xff08;Regularization Algorithms&#xff09; 集成算法&#xff08;Ensemble Algorithms&#xff09; 决策树算法&#xff08;Decision Tree Algorithm&#xff09; 回归&#xff08;Regression&#xff09; 人工神经网络&#xff08;Artificial…

微信公众号接入开发者模式,服务器配置Token验证

概述 接入微信公众平台开发&#xff0c;开发者需要按照如下步骤完成&#xff1a; 填写服务器配置验证服务器地址的有效性依据接口文档实现业务逻辑官方指南文档服务器配置 服务器地址(URL)&#xff1a;填写完URL后&#xff0c;微信服务器会发送GET请求&#xff0c;并携带以下参…

2 kafka安装

单节点&#xff1a; 1、解压kafka压缩包到安装目录&#xff08;自己指定&#xff09;&#xff1b; 2、进入kafka目录并执行命令 > bin/zookeeper-server-start.sh config/zookeeper.properties #如果报错&#xff0c;修改kafka-run-class.sh&#xff0c;将 -XX:UseComp…

TensorFlow自带例子

TensorFlow自带例子已经包含了android和ios下的摄像头图像分类示例Inception&#xff0c;这里补充一个Windows下的&#xff0c;使用AForge库(www.aforgenet.com)操作摄像头。 代码在这里下载&#xff0c;使用Visual Studio 2017编译。 http://files.cnblogs.com/files/autosoft…

遇到Visual Studio 当前不会命中断点.还没有为该文档加载任何符号的情况

一.问题及原因 有这样一种调用逻辑:A.exe调用B.dll.现在想要在B的源代码中打断点,从A发起进行调试,却给出了"当前不会命中断点.还没有为该文档加载任何符号"的提示.感觉十分奇怪,各种重新生成,重启VS都没啥用,最后不得以网上搜了一番,找到了问题的根源. 原来我把旧的…

java01基础简介

1 java概述 开发服务器端应用程序最流行语言&#xff0c;产生网页、运行后端逻辑。 当对java了解到一定程度&#xff0c;阅读源码才能解决问题。 Applet&#xff1a;在网页中运行的java程序&#xff0c; Java的应用领域&#xff1a; 桌面应用系统开发 企业级应用开发 多媒…

TensorFlow自带例子已经包含了android和ios下的摄像头图像分类示例Inception v1,这里补充一个Windows下的,使用AForge库(www.aforgenet.com)操作

TensorFlow自带例子已经包含了android和ios下的摄像头图像分类示例Inception v1&#xff0c;这里补充一个Windows下的&#xff0c;使用AForge库(www.aforgenet.com)操作摄像头。 代码在这里下载&#xff0c;使用Visual Studio 2017编译。 http://files.cnblogs.com/files/autos…

Docker+Mongodb

DockerMongodb 原文:DockerMongodbdocker search mongodb docker run -d -p 2701:27017 -v /usr/mongodb/data:/data/db -v /usr/mongodb/databack:/data/backup --name mongo-v1.0.0 mongo --auth docker exec -it mongo-v1.0.0 mongo admin docker exec -it mongo-v1.0.…

Java02继承

5继承 5.1 类、超类和子类 关键字extends表示继承。 Java中的继承都是公用继承&#xff0c;没有C中的私有继承和保护继承。 Super class Subclass 来自于集合的术语 Base class Derived class Parent class Child class 将通用的功能放在超类中&#xff0c;将具有特…

BP神经网络与Python实现

人工神经网络是一种经典的机器学习模型&#xff0c;随着深度学习的发展神经网络模型日益完善.联想大家熟悉的回归问题&#xff0c; 神经网络模型实际上是根据训练样本创造出一个多维输入多维输出的函数&#xff0c; 并使用该函数进行预测&#xff0c; 网络的训练过程即为调节该…

《关于长沙.NET技术社区未来发展规划》问卷调查结果公布

那些开发者们对于社区的美好期待 2月&#xff0c;长沙.net 技术社区自从把群拉起来开始&#xff0c;做了一次比较正式、题目为《关于长沙.NET技术社区未来发展规划》的问卷调查&#xff0c;在问卷调查中&#xff0c;溪源写道&#xff1a; 随着互联网时代的到来&#xff0c;互联…

Java03接口与内部类

6 接口与内部类 接口 interface 对象克隆 内部类 inner class 代理 proxy 6.1 接口 public interface Comparable<T> {int compareTo(T other); }Arrays.sort(Object[] a) 利用的是mergesort 接口也可以被扩展 public interface Moveable {void move(double x, doub…

第一节:ASP.NET开发环境配置

第一节&#xff1a;ASP.NET开发环境配置 什么是ASP.NET&#xff0c;学这个可以做什么&#xff0c;学习这些有什么内容&#xff1f; ASP.NET是微软公司推出的WEB开发技术。 2002年&#xff0c;推出第一个版本&#xff0c;先后推出ASP.NET2.0&#xff0c;和ASP.NET3.5&#xff0c…

深度学习笔记之win7下TensorFlow的安装

最近要学习神经网络相关的内容&#xff0c;所以需要安装TensorFlow。不得不说&#xff0c;安装TensorFlow的感受就像是大一刚入学学习C语言时&#xff0c;安装vs时一样&#xff0c;问题一大堆&#xff0c;工具都装不好&#xff0c;还学啥呀。好在&#xff0c;就在昨晚&#xff…