大数据学习第三天:

大数据学习第三天:

掌握linux下源码安装软件

源码的安装一般由3个步骤组成:

  • 配置(configure)
  • 编译(make)
  • 安装(make install)。

configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表。

其中--prefix选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr /local/share,比较凌乱。

如果配置了--prefix,如:

$ ./configure --prefix=/usr/local/linuxidctest

安装后的所有资源文件都会被放在/usr/local/linuxidctest目录中,不会分散到其他目录。

使用--prefix选项的另一个好处是方便卸载软件或移植软件

  • 当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载干净;
  • 移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统下)

当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是Makefile文件有uninstall命令。

make install PREFIX=path

这里PREFIX必须大写,其实绝大部分情况下 make install 都不能再指定 PREFIX 了,因为大部分程序都会 configure 时得到的 prefix 写入 config.h,然后在编译时编译到可执行文件内部,以便在执行时读取资源文件等。

这样在编译完毕后,就不能再修改 prefix 了。只有运行时不需要资源文件的小工具,才可能在安装的时候随意选择 PREFIX,或者具有 loader 的大程序,在执行时通过 loader 传入路径……

关于卸载

如果没有配置--prefix选项,源码包也没有提供make uninstall,则可以通过以下方式可以完整卸载:

一个临时目录重新安装一遍,如:

$ ./configure --prefix=/tmp/to_remove && make install

然后遍历/tmp/to_remove的文件,删除对应安装位置的文件即可(因为/tmp/to_remove里的目录结构就是没有配置--prefix选项时的目录结构)。

怎么解决依赖问题

依赖指的是软件与软件之间的关系,比如一个软件调用了另外一个软件的接口,所以安装该软件的时候,要保证该软件可以执行,就必须安装它的依赖软件。而x属性指的是可执行的意思。如果不是可执行的话,默认为文本数据

使用 APT 自动满足依赖关系

通常使用 deb 包管理方式的 Linux 发行版都已经安装了 APT(Advanced Packaging Tool) ,比如 Ubuntu,我们可以使用命令:

sudo apt-get -f install 

来自动满足未满足的依赖关系。输入该命令后只需一路回车即可,待依赖关系自动满足后,只需要重复安装软件包的命令即可。关于更多有关 APT 的用法,请移步此处

使用软件包管理器

如果使用了 APT 仍然没有满足全部的依赖关系,我们可以使用系统中的软件包管理器(如新立得)搜索需要的软件包,从而安装。很多时候我们甚至可以使用系统自带的软件中心之类的东西来搜索依赖的软件包,当然前提是依赖的软件包比较大众。例子中的 libnss 3-1d 这个包据测试在 Ubuntu 的软件中心里是有的,可以方便地搜索后安装。

网络下载后安装

如果通过以上两种方法,问题都没有得到全部解决。那么只能采用这种略显笨拙的方式了,Google 或者百度所需软件包的下载地址,下载好后单独安装好这个软件包。如果安装该软件包时提示还需要其他的软件包,那么又回到同一个问题了,按照这几种方法操作就是了。

掌握rpm文件安装

使用RPM安装的优点

1.避免编译过程 由于RPM所提供的安装包是已经是经过编译的二进制文件,因此无需编译,直接将其存放至指定路径即可运行。 2.方便管理软件 RPM软件在安装过程中会将软件的相关信息记录在专门的数据库中,这些数据可方便今后的软件更新与卸载。用户也可查询本机软件安装情况。

使用RPM安装的缺点

软件的RPM安装包对操作系统的版本和硬件环境具有严格的要求,不同厂商的操作系统往往不能共享同一个安装包,甚至同一厂商不同版本的操作系统也无法共享同一个安装包。 为了解决RPM安装包无法共享的问题,Red Hat提供了SRPM。

rpm的安装分为两种方式:

《1》 一种是通过rpm命令管理方式进行安装

《2》 一种是通过yum在线安装方式

平时我们安装软件时一般是从Linux的系统光盘下进行rpm安装, 而安装之前我们先把系统盘挂载到本地电脑


在这里插入图片描述
挂载完光盘以后就可以进行下一步的安装了。下面就以安装一个mysql-connector-odbc连接管理工具为例,进一步详细讲解安装包缺少so库文件的解决方法。


在这里插入图片描述
通过报错信息可以看到只要我们解决了libodbcinst.so这个库文件的安装文件,只要把这个安装文件装入系统那么这个so库也就成功安装,本着这个思路我们可以通rpmfind官网查询这个库的依赖文件下载并安装就可以了。

在rpm进行安装时如果缺少so库文件进入rpmfind官网查询下载相应包安装即可解决问题,如果是缺少某个安装文件也是下载安装,按照错误 提示做相应的操作就可以解决所有依赖问题。

在使用rpm安装下载的文件或者光盘中的文件时,要注意是使用包全名还是包名

《1》 如果操作的包是没有安装过的软件包时,要使用全路径加包全名的方式

《2》操作系统已经安装过的软件,使用包名即可,它会搜索/var/lib/rpm中的数据库。

RPM的使用

1.安装

rpm -ivh 安装包的名字

i:install的缩写,表示安装
v:查看详细的安装过程
h:显示安装进度

注意点: - 因为安装软件是root的工作,因此rpm命令需要root权限。 - 安装完成后,软件的相关信息会被写入/var/lib/rpm中。未来软件升级、卸载、软件信息查询均通过该数据库进行。 - 软件会被安装到如下目录:

目录
/etc存放软件的配置文件
/usr/bin存放软件的可执行文件(二进制文件)
/usr/lib存放软件的动态函数库
/usr/share/doc存放软件的参考手册
/usr/share/man存放各个软件的man page文件

2.升级

rpm -Uvh 需要升级的软件名

-Uvh:若待升级的软件尚未安装,则直接安装
rpm -Fvh 需要升级的软件名

-Fvh:若待升级的软件尚未安装,则该软件不会被安装

3.查询

rpm -q 软件名   //判断该软件是否已被安装
rpm -qa         //列出所有已安装的软件名
rpm -qi 软件名  //列出该软件的详细信息
rpm -ql 软件名  //列出该软件所有的文件
rpm -qc 软件名  //列出该软件的所有配置文件(即/etc/该软件相关的所有文件)
rpm -qd 软件吗  //列出该软件的所有帮助文件(即/usr/share/man/该软件相关的所有文件)
rpm -qR 软件名  //列出该软件所依赖软件的文件
rpm -qf 文件名  //找出该文件属于哪一个软件
rpm -qp[上述参数] 安装包名//列出安装包中指定的信息

查询的信息分为两类,一类是查询已被安装的软件的信息,另一类是查询尚未被安装的软件安装包的信息。 第一类信息通过rpm -q查询,第二类信息通过rpm -qp查询。

4.卸载

rpm -e 软件名

卸载一个软件非常方便,只需执行上述命令即可。 但一个软件所提供的动态函数库被其他软件引用,那么该软件将无法卸载,除非将引用该函数库的所有软件都卸载后才能卸载。

5.重建数据库

当/var/lib/rpm内的文件发生损坏时,可以通过如下命令修复:

rpm --rebuilddb

YUM的使用

RPM虽然省去了编译过程,并且提供数据库存储软件的信息,但仍然需要我们手动下载RPM安装包,而YUM的出现解决了这一问题。 较多软件的RPM安装包都存放在了YUM Server上,只要我们的计算机能连互联网,就能使用yum自动下载RPM安装包并安装软件。

1.查询

yum [-y/--installroot=xxx] [search/list/info/provides] [参数]

-y:在安装软件过程中若有询问,自动输入yes
--installroot=xxx:将xxx作为软件的安装目录
search:关键词搜索软件信息,后面需要加上关键词
list:列出yum管理的所有软件名称与版本,类似于rpm -qa
    info:同上,类似于rpm -qi
provides:从文件中搜索软件,类似于rpm -qf

2.安装

yum install 软件名

3.升级

yum update 软件名

若需升级整个系统,直接yum update即可。

4.卸载

yum remove 软件名

掌握yum安装及配置

1
查看、卸载已安装的yum包

查看已安装的yum包#rpm –qa|grep yum

卸载软件包#rpm –e –nodeps yum

在这里插入图片描述
2
下载安装依赖包python python-iniparse下载地址![img](file:///C:\Users\TR\AppData\Local\Temp%W@GJ$ACOF(TYDYECOKVDYB.png)http://centos.ustc.edu.cn/centos/6.5/os/x86_64/Packages/http://mirrors.163.com/centos/6/os/x86_64/Packages/找到对应包如:python-2.6.6-51.el6.x86_64.rpm python-iniparse-0.3.1-2.1.el6.noarch.rpm源地址可以从网上找一些速度比较快的,自身测试这两个地址速度还不错。包的名字可能跟上面不同,主要是版本和操作系统位数的不同,建议不要在页面搜索全部,如第一个包只搜索python,第二个包搜索python-iniparse。

在这里插入图片描述
3
安装#rpm –ivh python-2.6.6-51.el6.x86_64.rpm python-iniparse-0.3.1-2.1.el6.noarch.rpm下载安装yum包下载地址http://centos.ustc.edu.cn/centos/6.5/os/x86_64/Packages/http://mirrors.163.com/centos/6/os/x86_64/Packages/找 到对应包如:http://centos.ustc.edu.cn/centos/6.5/os/x86_64/Packages/ yum- plugin-fastestmirror-1.1.30-14.el6.noarch.rpm yum-metadata-parser-1.1.2-16.el6.x86_64.rpmyum-3.2.29-40.el6.centos.noarch.rpm#rpm-ivh yum-*若安装失败可重新输入此命令并加参数–nodeps –force查找包的方法与步骤二相同,在此不做赘述。

4
更改yum源下载配置文件!http://mirrors.163.com/.help/CentOS6-Base-163.repo将此配置文件替换/etc/yum.repos.d同名文件编辑配置文件#cd /etc/yum.repos.d#vi CentOS-Base.repo

在这里插入图片描述
5
将文件中$releasever改成对应版本(6/6.5)将源!mirrorlist.centos.org改为使用的yum源centos.ustc.edu.cnmirrors.163.com保存配置文件即可

在这里插入图片描述
6
清理yum缓存#yum clean all将服务器软件包信息缓存至本地,提高搜索安装效率#yum makecache 若上面两条命令有报错,一般为配置文件更改不完全,可根据错误信息查找配置文件中更改错误

测试#yum install vim

tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。

语法

tar(选项)(参数)

选项

-A或--catenate:新增文件到以存在的备份文件;
-B:设置区块大小;
-c或--create:建立新的备份文件;
-C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
-d:记录文件的差别;
-x或--extract或--get:从备份文件中还原文件;
-t或--list:列出备份文件的内容;
-z或--gzip或--ungzip:通过gzip指令处理备份文件;
-Z或--compress或--uncompress:通过compress指令处理备份文件;
-f<备份文件>或--file=<备份文件>:指定备份文件;
-v或--verbose:显示指令执行过程;
-r:添加文件到已经压缩的文件;
-u:添加改变了和现有的文件到已经存在的压缩文件;
-j:支持bzip2解压文件;
-v:显示操作过程;
-l:文件系统边界设置;
-k:保留原有文件不覆盖;
-m:保留文件不被覆盖;
-w:确认压缩文件的正确性;
-p或--same-permissions:用原来的文件权限还原文件;
-P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
-N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
--exclude=<范本样式>:排除符合范本样式的文件。

参数

文件或目录:指定要打包的文件或目录列表。

实例

将文件全部打包成tar包

tar -cvf log.tar log2012.log    仅打包,不压缩! 
tar -zcvf log.tar.gz log2012.log   打包后,以 gzip 压缩 
tar -jcvf log.tar.bz2 log2012.log  打包后,以 bzip2 压缩 

在选项f之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 如果加z选项,则以.tar.gz或.tgz来代表gzip压缩过的tar包;如果加j选项,则以.tar.bz2来作为tar包名。

查阅上述tar包内有哪些文件

tar -ztvf log.tar.gz

由于我们使用 gzip 压缩的log.tar.gz,所以要查阅log.tar.gz包内的文件时,就得要加上z这个选项了。

将tar包解压缩

tar -zxvf /opt/soft/test/log.tar.gz

在预设的情况下,我们可以将压缩档在任何地方解开的

只将tar内的部分文件解压出来

tar -zxvf /opt/soft/test/log30.tar.gz log2013.log

我可以透过tar -ztvf来查阅 tar 包内的文件名称,如果单只要一个文件,就可以透过这个方式来解压部分文件!

文件备份下来,并且保存其权限

tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log

这个-p的属性是很重要的,尤其是当您要保留原本文件的属性时。

在文件夹当中,比某个日期新的文件才备份

tar -N "2012/11/13" -zcvf log17.tar.gz test

备份文件夹内容是排除部分文件:

tar --exclude scf/service -zcvf scf.tar.gz scf/*

其实最简单的使用 tar 就只要记忆底下的方式即可:

压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
查 询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值