欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

马哥 12_01 _Linux软件管理之一 rpm 有大用

软件包管理


应用程序:

    程序,Architecture 


C语言:源代码-->(编译)二进制

脚本:解释器 (二进制程序) 

源代码-->编译-->链接-->运行

    程序:  

        库

            静态

            动态



             静态链接

             动态链接

                        共享库


配置文件:

dir=/path/to/somewhere 


程序的组成部分:

     二进制程序 (依赖于库)

     库(共享库 ,自身的库)  (自身的库也可以提供给别人)

     配置文件

     帮助文件



/boot

/etc/

/usr

/var  可以作为外围补充,可以存放php文件,锁文件,预备文件等,没有/var,固然可以; 有了/var 文件管理更加规范,刚开始小,后来越来越大,因为它会存放日志信息,及运行过程中的信息,好多文件是可以删除的,应该单独分区,(因为日志信息不希望被格掉)(/var 下可能有 tmp目录,它就是临时文件)

/dev

/lib

/tmp 可以单独分区,如果挺大的话,建议单独分区,一般情况下,最小不能小于400M (而我们建一个分区一般至少2G,所以够用了)

/bin

/sbin

/proc 伪文件系统 为了给用户提供调用接口 里面应该没有文件

/sys  伪文件系统 为了硬件给用户供调用接口 里面应该没有文件

/mnt

/media

/home  普通用户的家目录应该单独分区,防止格式化系统的时候,数据就没有了

/root     管理员的家目录,没有也没关系,为了安全,最好不要使用管理员登录,可以没有/root,但有的话,不应该单独分区,(因为分区的话,拿到其它地方,可以看到核心数据)

/misc 杂项基本用不到

/opt 可以单独分区

/srv 一般不能单独分区



 usr 全局的共享的只读目录

/etc,配置文件

/bin,/sbin, 二进制文件

 /lib, 库文件

/usr/share/man 帮助文件



/etc,/bin,/sbin,/lib 操作系统自身的启动所需要用到的程序都在这四个目录,,,,,,这些目录不能挂载额外的分区,必须在根文件系统的分区上



/usr/

    bin

    sbin

    lib


操作系统核心功能(基本功能,基本服务),它是可以单独分区的,格式化操作系统自身启动的分区,重装后,它仍然可以正常运行,(这跟windows把软件,服务装在D盘,格式化C盘,D盘的软件,服务不能运行,但是linux与windows是不一样的)

启动用到的功能很少,核心功能很多,所以如果单独分区的话,根目录很小,/usr 很大



里面运行的各种软件都是完全独立的

/usr/local

        bin

        sbin

        lib

        etc

        man

这个通常是安装的第三方软件,比如oracle,qq

尽量把它独立分区



/opt  早期第三方软件不是装在 /usr/local 下,是装在/opt下



/proc 伪文件系统 为了给用户提供调用接口 里面应该没有文件,默认是空的,不能单独分区  内核自我管理的时候使用的

/sys  伪文件系统 为了硬件给用户供调用接口 里面应该没有文件 默认是空的,不能单独分区  内核自我管理的时候使用的


/dev: 设备, 这个目录是必须的,(cpu,内核不需要驱动的,或者说驱动是在内部的,用户看不到的) 设备是核心功能,不能单独分区

    udev,(内核启动的时候用到)2.6之后cpu自动识别硬件,信息输出出来,根据内置的数据库,创建设备文件(可以创建特别名字的文件,比如usb),内核识别设备不是靠设备文件,而是靠驱动程序,

    2.4之前,没有udev,预先提供若干个文件(可能有2,,3万个文件),无法根据文件来识别硬件



/root: 不能单独分区

/var: 建议单独分区

/boot: 内核,initrd(红帽6上叫 initramfs) 一般情况下建议应该单独分区的(当然,可以不分区)

(因为根分区文件可能越来越大,磁盘可能不够用)(一般boot做成一个基本分区,而根放在 LVM上)

        内核:

POST-->BIOS(HD)-->(MBR)bootloader(文件系统结构, ext2,ext3,xfs)-->内核 


POST Power on and self testing 加电自检(上电自检)


程序:指令+数据

        指令:芯片 chip  (指令在生产时都是固化了的)

                CPU:普通指令,特权指令


指令集


C语言

    Powerpc: 二进制格式


    x86:


编译:程序指令=>汇编指令=>芯片指令



x86:汇编

powerpc:汇编



高级语言:

C:


cpu 与 汇编应该是对应的



软件包管理器的核心功能:

1,制作软件包                

2,安装,卸载,升级,查询,检验





Redhat ,SUSE, Debian

Redhat,SUSE:RPM   (原来叫 redhat package manager,后来别人也用,叫 RPM is  package manager,) (RPM 已经成了软件界的工业标准)

SUSE的RPM包,拿到红帽上不可以,它的组织文件路径的方式反正不一样

Debian:dpt (debian package tools)


依赖关系:

        X-->Y-->Z

        

        X--Y-->Z-->Y  让它们同时安装


前端工具: yum,apt-get                     update(分离器 管理器,当然有很多)

后端工具:RPM,dpt


yum: Yellowdog Update Modifier (黄狗升级修改器)针对红帽的二次发行版 








image.png

image.png

image.png

根分区不一定是内核所在的分区


image.png

image.png




image.png



image.png


库是只读的 不包含数据 只包含指令,库是一堆功能模块

上图的这种库叫共享库


heap 堆是向上增长

stack 栈是向下增长


image.png



image.png


[root@ebs-22618 ~]# cat /proc/cpuinfo

image.png





image.png















普通分类: