软件包管理

应用程序:
程序:Architecture

C语言:源代码-->(编译) 二进制格式
脚本:解释器(二进制程序)

源代码-->编译-->链接-->运行
程序:指令+数据
指令:芯片
CPU:普通指令,特权指令
指令集
C语言:
powerpc:编译成二进制格式
x86 :无法使用
不同品牌的CPU,指令集不同
汇编语言类似于机器语言 不能跨平台,无法移植
高级语言:
C ,JAVA 具有移植性

静态
动态

                                            静态链接动态链接共享库

配置文件
程序组成部分:
二进制程序 /bin ,sbin
库 /lib
配置文件 /etc
帮助文件 /usr/share/man
/boot
/etc
/usr
/dev
/var
/lib
/tmp
/bin
/sbin
/proc
/sys
/mnt
/media
/home
/root
/misc
/opt
/srv

/etc ,/bin ,sbin, /lib ,/usr/share/man
系统启动就需要用到的程序,这些目录不能挂载额外的分区,必须在根文件系统的分区上
/usr/
bin
sbin
lib
操作系统核心功能,可以单独分区

/usr/local/
bin
sbin
lib
etc
man
第三方软件操作,建议独立分区
/opt 旧的第三方软件仍然在此目录下

/proc
/sys
不能单独分区,默认为空;
/dev :设备,不能单独分区;
udev 按需创建 内核识别硬件
/home 可以单独分区
/root 不建议单独分区
/var 建议单独分区
/boot :内核,initrd (initramfs)
内核:建议单独分区
POST-->BIOS(HD)-->(MBR) bootloader(文件结构系统,ext2 ,ext3 , xfs)-->内核
BIOS(ROM)--->MBR (bootloader)
软件包管理器
打包成一文件:二进制程序 ,库文件 ,配置文件,帮助文件
生成数据库,追踪所安装的每一个文件
软件包管理器的核心功能
1、制作软件包
2、安装、卸载、升级、查询、校验

Redhat ,SUSE ,Debian
Redhat , SUSE :RPM
Redhat Package Manager 早期名称
RPM is Package Manager 后期名称
Debian :dpt
依赖关系比较复杂
X-->Y-->Z-->X
前端工具:yum , apt-get
后端工具:RPM ,dpt
yum :Yellowdog Update Modififier
rpm命令:
rpm:
rpmbuild:
安装、查询、卸载、升级、校验、数据库的重建、验证数据包等工作;

rpm命名:
包:组成部分
主包:
bind-9.7.1-1.i586.e15.rpm
子包:
bind-libs-9.7.1-1.i586.e15.rpm
bind-utils-9.7.1-1.e15.i586.rpm
包名格式:
name-version-release.arch.rpm
bind-major.minor.release-release.arch.rpm
主版本号:重大改进
次版本号:某个子功能发生重大变化
发行号:修正了部分bug,调整了一点功能
rpm包:
二进制格式:安装方便
rpm包作者下载源程序,编译配置完成后,制作成rpm包
bind-9.7.1-1.e15.i686.rpm
源码格式:
一、安装
rpm -i /PATH/TO/PACKAGE_FILE 安装rpm包
-h :以#显示进度,每个#表示2%;
-v :显示详细过程
-vv:更详细过程
rpm -ivh /PATH/TO/PACKAGE_FILE
--nodeps:忽略依赖关系;
--force :强行安装,可以实现重装或降级;
--replacepkgs:重新安装,替换原有安装;
二、查询

rpm -q PACKAGE_NAME: 查询指定的包是否已经安装
rpm -qa : 查询已经安装的所有包
rpm -qi PACKAGE_NAME : 查询指定包的说明信息
rpm -ql PACKPACKAGE_NAME : 查询指定包安装后生成的文件列表
rpm -qc PACKPACKAGE_NAME : 查询指定包安装的配置文件
rpm -qd PACKPACKAGE_NAME : 查询指定包安装的帮助文件
rpm -q --scripts PACKAGE_NAME : 查询指定包中包含的脚本
rpm -qf /path/to/somefile : 查询指定的文件是由哪个rpm包安装生成的
如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件
rpm -qpi /PATH/TO/PACKAGE_FILE
rpm -qpl
三、升级
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装;
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,退出;
--oldpackage :降级
四、卸载
rpm -e PACKAGE_NAME
--nodeps
五、校验
rpm -V PACKAGE_NAME
六、重建数据库
rpm
--rebuilddb:重建数据库,一定会重新建立
--initdb :初始化数据库
七、检验来源合法性,及软件完整性
加密类型:
对称: 加密解密使用同一个密钥
公钥: 一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来,并公开出去
单向:
rpm -K PACKAGE_NAME 验证合法性
dsa,gpg : 验证来源合法性,也即验证签名;可以使用--nosignature,略过此项
shal,md5:验证软件包完整性;可以使用--nodigest,略过此项
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release : 导入密钥文件
yum C/S架构 判断rpm能力 元数据文件
依赖于yum repository yum仓库
文件服务
ftp
web
file
HTML :HyperText Mark Language
XML :eXtended Mark Language

XML JSON:半结构化的数据
yum仓库中的元数据文件:
primary.xml.gz
所有RPM包的列表;
依赖关系;
每个RPM安装生成的文件列表;
filelists.xml.gz
当前仓库中所有RPM包的所有文件列表;
other.xml.gz
额外信息,RPM包的修改日志
repomd.xml
记录的是上面三个文件的时间戳和校验和;
comps*.xml
RPM包分组信息
yum配置文件
/etc/yum.conf
repo文件位置
/etc/yum.repos.d
如何为yum定义repo文件
[Repo_Name]
name=Description
baseurl=
ftp://
http://
file:///
enabled={1 | 0}
gpdcheck={1 | 0}
gpgkey=路径 此格式 ftp://
http://
file:///
yum [options] [command] [package ...]
list :列表
支持glob
all
available 可用的,仓库中有但尚未安装的
installed 已经安装的
updates 可用的升级

      clean        :清缓存[  packages | headers | metadata | dbcache | all ]repolist   :显示repo列表及其简要信息all enabled  :默认disabledinstall 安装yum install PACKAGE_NAMEupdate :升级update_to :升级为指定版本remove | erase:卸载infoprovides | whatprovides :查看指定的文件或特征是由哪个包安装生成的;groupinfogrouplistgroupinstallgroupremovegroupupdate

如何创建yum仓库:
createrepo 创建repo配置文件
RPM安装:
二进制格式:
源程序--->编译--->二进制格式
有些特性是编译选定的,如果编译未选定此特性,将无法使用: rpm包的版会落后于源码包,甚至落后很多:bind-9.8.7,bind-9.7.2
定制:手动编译安装
编译环境,开发环境
开发库,开发工具
linux :C,
GNU :C
C环境 , C++
gcc :GNU C Complier ,C
g++ :

make :项目管理工具,
makefile :定义了make(gcc,g++)按何种次序去编译这些源程序文件中的源程序

automake --> makefile.in --> makefile
autoconf --> configure
100个可选择特性,
make install
编译安装的三步骤
前提:准备开发环境(编译环境)
安装“Development Tools”和“Development Libraries”
tar
cd
./configure
--help
--prefix=/path/to/somewhere
--sysconfdir=/PATH/TO/CONFFILE_PATH
功能:1、让用记选定编译特性:2、检查编译环境:
make
make install

tar xf tengine-1.4.2.tar.gz
cd tegnine-1.4.2
./configure --prefix=/usr/local/tengine --conf-path=/etc/tengine/tengine.conf
make
make install
/usr/local/tengine/sbin/nginx
1、修改PATH环境变量,以能够识别此程序的二进制文件路径 修改/etc/profile文件
在/etc/profile.d/目录建立一个以.sh为名称后缀的文件,在里面定义export PATH=$PATH:/path/to/somewhere
2、默认情况下,系统搜索库文件的路径/lib ,/usr/lib; 要增添额外搜寻路径:在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添的路径直接写此文件中:
#ldconfig 通知系统重新搜索寻库文件
-v : 显示重新搜寻库的过程
3、头文件 :输出给系统
默认: /usr/include
增添头文件搜寻路径,使用链接进行:
/usr/local/tengine/include /usr/indclude
两种方式 :
In -s /usr/local/tengine/include/* /usr/include/ 或
In -s /usr/local/tengine/include /usr/include/tengine

4、man文件路径 :安装在--prefix指定的目录下的man目录:/usr/share/man
1、man -M /PATH/TO/MAN_DIR COMMAND
2、在/etc/man.config中添加一条MANPATH
netstat 命令
-r :显示路由表
-n: 以数字方式显示
-t : 建立的tcp连接
-u :显示udp连接
-l :显示监听状态连接
-p :显示监听指定的套接字的进程的进程与及进程名

kill 端口号  关闭应用

perl , java ,python

转载于:https://blog.51cto.com/14087650/2343041

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

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

相关文章

工业机器人码垛教学实施_工业机器人应用案例码垛详解

工业机器人应用案例码垛详解随着科技的进步以及现代化进程的加快,人们对搬运速度的要求越来越高,传统的人工码垛只能应用在物料轻便、尺寸和形状变化大、吞吐量小的场合,这已经远远不能满足工业的需求,机器人码垛机应运而生。机器…

第一家云创大数据产业学院在佛山职业技术学院挂牌

2019年1月10日,“云创大数据产业学院揭牌暨战略合作协议签署仪式”在佛山职业技术学院电子信息学院会议室举行。云创大数据总裁刘鹏教授、市场部经理单明月,佛山职业技术学院电子信息学院院长唐建生、副院长田钧、学院办公室主任赵雪章、信息工程系主任乔…

String与StringBuffer和StringBuilder的根本区别

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

16进制 ksh_AIX系统中如何统计进程打开的文件数目

作者:李烨楠 中国建设银行来自微信公众号:平台人生环境: AIX 6.1 AIX7.1前言:用户有时需要统计一个进程打开的文件数目,比如,在当前打开文件句柄使用量是否超过用户资源限制(/etc/security/limits)中 nofiles的取值时。那么&#…

前端Http协议缓存初解

[TOC] 简介 用户获取网络资源,需要通过非常长的网络去服务器上请求资源,另外服务端为了应对大量的用户请求而不断的提升硬件性能与带宽。这对用户与服务端都非常的不友好。而缓存就是为了解决用户请求速度与释放服务器压力而生的。 为什么我会写Http缓存&#xff0c…

详解java访问修饰符

*************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如果以上内容对你觉得有用,并想获取更多的赚钱方式和免费的技术教程 请关注微信公众号:HB荷包 一个能让你学习技术和赚钱方法的公众号,持续更…

educoder 二进制数据的位运算_二进制与位运算实用操作汇总(基础篇)

位运算是最高效而且占用内存最少的算法操作,但也是最难看懂的操作。然而,关于位运算的用法,笔者查了许多资料,似乎都没有找到详细而系统的讲解资料。笔者对位运算的操作相当感兴趣,因此斗胆尝试对位运算来一个的总结。…

企业为什么要做SEO,它的重要性有哪些?

对于SEO工作而言,我们知道一个网站做SEO的基础诉求就是让用户和搜索引擎更好的理解网站内容,虽然随着搜索引擎算法技术的迭代,目前SEO面临更大的挑战与竞争,但基于搜索营销,它目前仍然显得十分重要。 那么&#xff0…

白话说编程之java线程

白话说编程之java线程线程和进程:进程:线程:线程和进程的区别:详解多线程:并发为什么使用并发并发的执行原理并行线程的五种状态:创建状态:就绪状态:运行状态:阻塞状态:死…

powerdesigner显示工具面板_photoshop教程-画笔工具预设与选项设置

定义画笔预设在打开的“画笔”面板中,单击左侧的“画笔笔尖形状”名称,可显示笔尖形状图案。单击“画笔”面板左侧其他不同的选项名称,在右侧就会显示其对应的调节项。只单击不同选项前面的方框,可使此选项有效,但右侧…

C#属性的声明和使用演示源码片段

工作闲暇时间,将代码过程重要的一些代码做个收藏,如下代码是关于C#属性的声明和使用演示片段的代码,应该对码农有一些好处。 using System; class Person {private string myName "N/A";private int myAge 0;public string Name{g…

深入理解== 和 equals 的区别

深入理解 和 equals 的本质区别简介区别:图解:注意点:源码分析:总结分享一波:程序员赚外快-必看的巅峰干货简介 初学者常常被" “和‘equals ’所折磨,为什么,因为他们的大概意思相同,都是…

rsem比对_RSEM方法比对和表达量计算

分析模块,封装了Trinity程序包中的“align_and_estimate_abundance.pl”脚本,进行原始数据与转录本序列的比对和表达量计算。其中,核心程序为,Bowtie或Bowtie2进行原始数据与转录本序列的比对,RSEM根据比对结果进行表达…

java sleep和wait区别

为什么80%的码农都做不了架构师?>>> 关于sleep和wait区别解析: sleep只是释放CPU资源,并不释放资源锁对象,wait是会释放掉资源锁对象。 比如,有个锁对象object,线程1和线程2都会锁住object对象…

u8转完看不到菜单_web网页有错误,无法看到操作菜单-用友U8

文章摘要:本文提供在用友U8V8.51erp软件财务会计管理的WEB财务模块中客户在使用WEB功能时,没有使用默认的设置,是将WEB功能设置在自己的网站上面,访问WEB功能没有问题,界面出来了,输入用户名、密码、选择帐…

.Net Core 项目引用本地类库方式(二)

上篇文章有详细的介绍.Net Core 项目中引用本地类库通过打包,然后Nugety引用方式,这里再介绍一种引用包的方式 转载于:https://www.cnblogs.com/wangshitou/p/10283800.html

深入理解equals和hashCode关系和区别

深入理解equals和hashCode关系和区别直入主题:区别:1.他们判断对象相同的方式不一样:2.他们判断对象是否相等的准确率不一样:改写equals时总是要改写hashcode分享一波:程序员赚外快-必看的巅峰干货为什么要说equals和hashCode这两…

lol韩服游戏内设置_韩服LOL进去了还不能玩?教你如何玩韩服!

领取免费韩服LOL安全号,百度搜索韩服LOL微博关注即可!上图错误为常识性错误,LOL韩服游戏的安装文件路径有中文所导致的错误 解决方法:将安装路径里的中文改成英文即可 举例 包含中文汉字的文件夹都是错误的 Program FilesLOL韩服 …

Jdk 和 jre 的 关系和区别

Jdk 和 jre 的 关系和区别 区别: JDK:是Java Development Kit 的简称–>翻译过来就是:Java 开发工具包。是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。 JRE:是Java Runtime Environm…