一、软件管理

静态库 动态库
静态库:在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库
动态库:在程序编译时并不会被连接到目标代码中,而是在程序运行时才被载入。

链接是程序调用库的过程。

静态链接库 动态链接库
静态链接库:把库文件中用到的函数代码直接链接到目标程序,程序运行的时候不再需要它的库文件。
动态链接库:把调用的函数所在的文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行时再从DLL中寻找相应的函数代码, 此需要DLL文件的支持。

编程-->编译-->运行-->链接库

一般编译好的程序有哪些组成部分?

1.可执行文件(二进制文件)

存放地点:/bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin

find / -name *bin -type d
/usr/share/locale/bin
/usr/local/bin
/usr/local/sbin
/usr/lib/pm-utils/bin
/usr/lib/jvm/java-1.6.-openjdk-1.6.0.0/jre/bin
/usr/bin
/usr/sbin
/bin
/sbin

通过编译源代码安装的软件,通常都放入/usr/local/SOFTWORE_NAME/
/usr/local/SOFTWORE_NAME/
bin,sbin,lib,man,etc

完成以下任意操作,直接当命令执行
ln -s /usr/local/SOFTWORE_NAME/mysoft /bin/mysoft
PATH=$PATH:/usr/local/SOFTWORE_NAME/bin

2、头文件和库文件

头文件存放在 /usr/include
库文件 /lib /usr/lib /usr/local/lib /lib64
ldconfig -v 查询当前系统中已经加载的库

在 /etc/ld.so.conf.d/下创建一个以.conf为后缀的文件,然后在文件里添加路径
或者 做软链接到/lib

头文件链接到/usr/include

3.配置文件(提供变量)

/etc /usr/etc /usr/local/etc

4.帮助文件

/ussr/share/man
man的配置文件:/etc/man.config

二、rpm及yum

rpm实现的功能:
1.安装软件、查询、升级、校验、卸载
2.创建、维护、清除数据库及其中的记录
3.重建数据库
4.软件直接依赖关系的提示(依赖地狱)

yum:yellowdog update modifier 前台管理工具
帮助rpm解决依赖地狱

rpmfind.net 查找下载rpm安装包

tree -1.5.-.el6.i686.rpm
tree:软件名称
1.5.-:
:主版本号
:次版本号
:修订版本号
-:修订次数
el6:依赖的操作系统的发行版本(RHEL6)
i686:硬件平台
x86_64
sparc
ppc:apple
noarch:不区分平台,任何平台都可以用

rpm

  • 1.安装模式

-i:启用安装模式
-v:显示安装的软件名
-h:显示安装进度
--replacpkgs:安装软件之前不再检查是否已安装
--nodeps:安装软件前不再检查依赖关系
--force:强制安装

①先查看软件包的头部信息,以确认签名是否有效
②准备阶段

.检查软件包是否已经安装
.检查软件包是否存在依赖关系
.备份之前安装过的软件所包含的文件,*.rpmsave
.如果有,则运行相应的安装脚本

③安装
④清理安装过程中产生的临时文件
⑤更新数据库

mkdir /mnt/cdrom
mount -r /dev/cdrom /mnt/cdrom
rpm -ivh /mnt/cdrom/Packages/tree-1.5.3-2.el6.i686.rpm

  • 2.查询模式

-q:开启查询模式的开关
-a:查询所有安装过的软件包
-f:查看文件是哪个软件包安装的
-p:指定软件包
-l:列举包中的文件
-i|--info 软件名:查看软件信息

rpm -qi dhcp

  • 3.升级模式

-U:升级软件之前,如果已安装则升级,否则全新安装
-F:只能完成升级安装
--oldpackage:降级

  • 4.校验模式

-V:校验,检查软件包和已安装文件的状态是否有变化
rpm -V
-K 软件包:检查,来源是否可靠,签名是否可以认证
--import:导入官方的公钥文件
/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

  • 5.卸载模式

-e 软件名:卸载模式的开关
--nodeps:卸载前不考虑依赖关系

  • 6.重新构建数据库

--rebuilddb:重新构建
--initdb:初始化创建数据库

单向加密:用特定的方法对某个数据进行特征值(电子指纹)计算
先用单向加密对软件包抽象特征值,每个软件包都有唯一的特征值,再用私钥加密特征值,客户端用获得的公钥解密特征值,再用同样的
单向加密算法,重新计算软件的特征值
单向加密确定完整性
校验机制确定私密性

readlink 获取链接文件的路径.

yum

语法格式:

yum [options] [command] [package..]

options:普通选项
-y:所有的yum问题都以“yes”作为回答的内容
--nogpgcheck:不检查数据签名
command:
install
update
remove|erase
list
groupinstall

yum有元数据数据库 metadata--*.xml
软件仓库:repository
ls /mnt/cdrom/Server/repodata

createrepo:创建软件元数据库

配置yum源的软件仓库:/etc/yum.repos.d/*.repo

vim /etc/yum.repos.d/local.repo  (同一个yum源可以写很多个仓库)
[localrepo] #仓库名
name=local cdrom repo
baseurl=file:///mnt/cdrom #file协议是本地文件查找协议
enabled= #开启软件仓库
gpgcheck= #是否检查数字签名 [ftp]
name=ftp repository
baseurl=ftp://172.16.0.1/Server #必须有repodate文件
enabled=
gpgcheck=

全局配置文件:/etc/yum.conf

ls /var/cache/yum/i386/6Server/localrepo/ 缓存目录

yum -y install createrepo

【linux之软件安装,rpm,yum】的更多相关文章

  1. 第五部分 linux 软件安装RPM SRPM与YUM

    第五部分  linux  软件安装RPM    SRPM与YUM   软件管理员简介 RPM与DPKG两大主流 rpm: redhat       centos     suse    命令:yum ...

  2. Linux学习笔记(13)linux软件安装rpm与yum--理论篇

    该文章linux知识点如下 1.linux中 软件包介绍 2.linux源码软件安装 3.linux二进制软件安装 4.linux rpm软件包管理 5.linux yum软件包管理 1.linux中 ...

  3. linux下软件安装的几种方式

    linux下软件安装的几种方式(主要有源码安装, rpm安装, yum安装). 一:源码安装 几乎所有的开源软件都支持在Linux下运行,而这些软件一般都以源码形式发放,只需要Linux安装了gcc. ...

  4. Linux下软件安装的四种方式

    一.源码安装 步骤: 下载,解压源码(常见的源码打包格式:.tar.gz/.tar.bz2); 可以直接下载源码再上传至linux服务器,或者在联网状态下,直接通过wget等命令获取源码安装包;源码解 ...

  5. linux初学者-软件安装与管理篇

    linux初学者-软件安装与管理篇 在linux的学习和工作中需要安装许多的软件.在redhat的linux操作系统下,软件一般都是rpm格式的.以下将介绍一些软件安装和管理的内容. 1.软件名称 在 ...

  6. 2019-9-16:渗透测试,基础学习,Linux下软件安装,环境搭建,笔记

    Centos linux下软件安装yum 通过分析rpm包头数据后,自动解决依赖关系,直接云端下载软件,根据不同版本系统获取不同软件信息,按顺序下载rpm包,安装软件yum search 软件名:搜索 ...

  7. 【转】Linux下软件安装的几种方式

    转自Linux下软件安装的几种方式 Linux 系统的/usr目录 Linux 软件安装到哪里合适,目录详解 Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的 /usr:系统 ...

  8. (大数据工程师学习路径)第一步 Linux 基础入门----Linux 下软件安装

    介绍 介绍 Ubuntu 下软件安装的几种方式,及 apt,dpkg 工具的使用. 一.Linux 上的软件安装 通常 Linux 上的软件安装主要有三种方式: 在线安装 从磁盘安装deb软件包 从二 ...

  9. Linux系统手动安装rpm包依赖关系分析(以Kernel升级为例)

    有在Linux系统中安装软件的经历的人都知道,在Linux系统中手动安装软件不想在Windows下安装软件那么方便,直接双击,然后下一步下一步就可以把软件成功的装入到系统中,而在Linux系统中,安装 ...

  10. Linux入门基础教程之Linux下软件安装

    Linux入门基础教程之Linux下软件安装 一.在线安装: sudo apt-get install 即可安装 如果在安装完后无法用Tab键补全命令,可以执行: source ~/.zshrc AP ...

随机推荐

  1. golang的GET请求(类似于PHP的CURL)

    check_url := "https://www.baidu.com" header := make(map[string]string) res, err := util.Hp ...

  2. iOS开发中UIPopoverController的使用详解

    这篇文章主要介绍了iOS开发中UIPopoverController的使用,代码基于传统的Objective-C,需要的朋友可以参考下 一.简单介绍 1.什么是UIPopoverController ...

  3. mac idea中的Application Server was not connected before run configuration stop, reason: Unable to ping server at localhost:1099问题

    今天上午用的好好的就出现了这个问题 真是奇怪: Google了一番有以下解决办法: 1.hosts文件的问题: vi /etc/hosts文件 添加127.0.0.1  localhost里面 2.m ...

  4. 关于在windows10中的vmware9.0里面安装的ubuntukylin15.04和windows共享目录的一些反思

    关于在windows10中的vmware9.0里面安装的ubuntukylin15.04和windows共享目录的一些反思 一.遇到的问题      如题目所说,在windows的虚拟机中和windo ...

  5. Angular:利用内容投射向组件输入ngForOf模板

    现在,我们写一个组件puppiesListCmp,用于显示小狗狗的列表: //puppies-list.component.ts @Component({ selector: 'puppies-lis ...

  6. Java常见加密算法

    常见 package com.example.decript; import java.io.UnsupportedEncodingException; import java.security.In ...

  7. Shell 脚本实践

    1. 脚本判断命令输出是否为空 (1)判断字符串为空 if [ "$str" =  "" ]  if [ x"$str" = x ] if ...

  8. nodejs之socket.io模块——实现了websocket协议

    Nodejs实现websocket的4种方式:socket.io.WebSocket-Node.faye-websocket-node.node-websocket-server,主要使用的是sock ...

  9. 面试题:HTTP与HTTPS

    记录个面试题 HTTP与HTTPS的不同 1.HTTP的URL为http://开头,HTTPS的URL为https://开头 2.HTTP标准端口80,HTTPS标准端口是443 3.在OSI网络模型 ...

  10. 1_Two Sum --LeetCode

    原题如下: 思路:将nums放到一个map<int,int>中,其中,键是nums中元素,值对应其下标.然后遍历nums,取nums中一个值nums[i],接着用target减去它,最后再 ...