• Linux——软件安装


    一、gcc

    gcc是Linux上面最标准的C语言的编译程序,用来源代码的编译链接。

    gcc -c hello.c 编译产生目标文件hello.o
    gcc -O hello.c 编译产生目标文件,并进行优化
    gcc -o hello hello.c 生成hello这个可执行的二进制文件
    

    缺点:命令的冗余性,如果 C 语言程序中包含对其他函数或者程序的引用,那么其他程序也要编译成目标文件,然后一起编译成可执行文件,才能运行成功。一个大的程序引用是非常多的,所以用gcc来编译,显得很冗余。

    二、make

    用make进行宏编译,make的功能是简化编译过程中所下达的指令,如果编译完成之后,修改了某个原始码文件,则make只会去更新这个文件,其他的文件不会被改动。要使用make命令,是因为事先编写 好的 makefile 这个文件。然后make命令安装这个文件编译链接,大大简化了编译的步骤。

    makefile的基本语法:

    目标(target):目标文件1 目标文件2
    <tab> gcc -o 欲建立的执行的文件 目标文件1 目标文件2

    三、rpm

    软件安装的相关信息都被写入 /var/lib/rpm/ 中,我们查询是否有软件升级的需求,版本的比较也是来源于这个数据库。rpm安装软件最大的问题就是软件的相依属性问题,如果关联的软件没有安装,那么该软件也不能安装。

    rpm安装软件并查看安装信息(安装到自定义路径): rpm -ivh 软件名称 (--prefix /usr/local)
    rpm 测试此软件是否具有相依性: rpm -ivh 软件名称 --test
    rpm升级软件(软件存在,予以更新;软件不存在,予以安装): rpm -Uvh 软件名称
    rpm升级软件(软件存在,予以更新;软件不存在,不予以安装): rpm -Fvh 软件名称
    
    rpm查询软件:
    	rpm -qa   已安装软件
    	rpm -q[licdR]已安装的软件名称	已安装软件
    	rpm -qf 存在于系统上面的某个文件名	已安装软件
    	rpm -qb[licdR]未按照的某个文件名	查阅RPM文件
    选项与参数:
    	查询已安装软件的信息:
    	-q :仅查询,后面接的软件名称是否有安装:
    	-qa :列出所有的,已经安装在本机Linux 系统上面的所有软件名称: 
    	-qi :列出该软件的详细信息( information), 包含开发商、版本与说明等
    	-ql :列出该软件所有的文件与目录所在完整文件名(list);
    	-qc:列出该软件的所有配置文件(找出在/etc/底下的檔名而已)
    	.qd:列出该软件的所有说明文件(找出与man有关的文件而已)
    	-qR :列出与该软件有关的相依软件所含的文件(Required 的意思) 
    	-qf :由后面接的文件名,找出该文件属于哪一个已安装的软件;
    	-q --scripts: 列出是否含有安装后需要执行的脚本档,可用以debug 喔!
    

    查询某个RPM文件内含有的信息:

    		-qp[icdIR]: 注意-qp 后面接的所有参数以上面的说明一致。 但用途仅在于 找出
    		某个RPM文件内的信息,而非已安装的软件信息!注意!
    

    列出目前系统上面所有可能被更改过的文件:rpm -Va

    重建rpm数据库: rpm --rebuilddb

    四、yum

    yum 是目前Linux最方便的软件管理工具,它比起rpm来可以自动处理软件的相依属性问题,以解决软件的安装、卸载、升级的问题.
    yum 查询的功能:
    	[root@study ~]# yum [option] [查询工作项目] [相关参数]
    	选项与参数: 
    		[option];主要的选项,包括有: 
    		-y :当yum要等待用户输入时,这个选项可以自动提供yes 的响应:
    		--installroot=/some/path :将该软件安装在/some/path 而不使用默认路径
    	[查询工作项目] [相关参数]:这方面的参数有:
    		search :搜寻某个软件名称或者是描述(description) 的重要关键字: 
    		list :列出目前yum所管理的所有的软件名称与版本,有点类似rpm -qa ;
    		info:同上,不过有点类似rpm -qai 的执行结果:
    		provides:从文件去搜寻软件!类似rpm -qf的功能!
    列出目前服务器上可供本机进行升级的软件有哪些:yum list updates
    查看yum源列表:yum repolist
    安装软件:yum install 软件名称
    升级软件:yum update 软件名称
    卸载软件:yum remove 软件名称
    修改yum的源和配置文件:vim /etc/yum.repos.d/CentOS-Base.repo
    删除所有软件库的相关数据:yum clean all
    将已下载的软件文件删除:yum clean packages
    将下载的软件文件头删除:yum clean headers
    yum的软件群组的功能:
    	[ root@study ~]# yum [群组功能] [软件群组]
    选项与参数:
    	grouplist : 列出所有可使用的[软件群组组」,例如Development Tools之类的
    	groupinfo ; 后面接group name, 则可了解该group 内含的所有软件名:
    	groupinstall:这个好用!可以安装整组的软件群组,相当的不错用 !
    	groupremove :移除某个软件群组:
    范例一:查阅目前软件库与本机上面的可用与安装过的软件群组有哪些?
    	[ root@study ~]# yum grouplist
    全系统自动升级所需要升级的软件:
    	yum -y update
    

    修改默认yum源为国内的阿里云yum源。官方的yum源在国内访问效果不佳,需要改为国内比较好的阿里云或者网易的yum源:

    #下载wget
    yum install -y wget
    #备份当前的yum源
    mv /etc/yum.repos.d /etc/yum.repos.d.backup
    #新建空的yum源设置目录
    mkdir /etc/yum.repos.d
    #下载阿里云的yum源配置
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    

    重建缓存:

    yum clean all
    yum makecache
    
  • 相关阅读:
    【bzoj2733】永无乡(无旋treap启发式合并 + 并查集)
    【bzoj2002】弹飞绵羊(分块)
    【bzoj2724】蒲公英(分块)
    【最大M子段和】dp + 滚动数组
    【最大连续子段和】单调队列 + 前缀和优化
    【广告印刷】单调队列
    【烽火传递】dp + 单调队列优化
    【志愿者选拔】单调队列、输入优化
    【Sliding Window】单调队列
    【序列操作V】平衡树(无旋treap)
  • 原文地址:https://www.cnblogs.com/aixing/p/13327246.html
Copyright © 2020-2023  润新知