系统软件所存放的目录:

        /etc                 配置文件

        /bin 、/sbin    二进制文件

        /lib                  库文件

        这几个目录不能挂载其他分区,因为系统启动需要里面的程序

        

核心功能软件安装目录:

        可以单独备份,重装系统只要重新覆盖目录原有的软件依然存在

        /usr/

                bin

                sbin

                lib

第三方软件安装目录:

        这个目录即使安装在其他分区也可以,重新挂载在其他电脑上也可以运行

        /usr/local

                bin

                sbin

                lib

                etc

                man

        /opt        老的第三方软件会安装在这个目录,现在都是安装在/usr/local中

        /proc  、 /sys  这两个目录是启动系统所用到的目录,不可单独分区,虽然没有任何文件但是很重要

        /dev        设备,驱动,不能单独分区,在2.0内核以后udev会动态创建设备文件

        /home     建议单独分区

        /root       不建议单独分区

        /var         系统运行时目录,日志文件等,建议单独分区

        /boot      内核,建议单独分区


rpm软件包管理工具:

        rpm                管理软件包的工具,rpm提供软件包追踪,这些数据在/var/lib/rpm下面

        rpmbuild        创建软件包工具

        rpm的功能有,安装、查询、卸载、升级、校验、数据库重建、验证数据表等工作。

        

        源代码:name-version.tar.gz

                version:major.minor.release      major变化表示主程序发生改变,minor改变增加功能,release改变表示修复了bug

        

        rpm包命名方式:name-version-arch.rpm        arch表示平台

            arch:release.os.arch        这个release是rpm包的release,arch表示运行平台,os表示兼容平台,常见的arch有x86_64,i386,i486,i586,i686等

        

        ldd        查看二进制文件程序所依赖的库

        ldd    /bin/ls


管理查看本机装载的库文件:

        ldconfig  -p     库文件名称和位置的映射列表

        配置文件:/etc/ld.so.conf  ,  /etc/ld.so.conf.d/*.conf

        缓存文件:/etc/ld.so.cache

        直接运行ldconfig命令重新装载库列表

        

程序包管理:

        程序包包含有文件清单,安装或卸载的脚本

        程序包有一个公共数据库,用来记录程序安装产生的文件位置,依赖库,功能说明,校验码的信息。

        

获取程序包的途径:

        1、官方镜像站点

                http://mirrors.aliyun.com

                http://mirrors.sohu.com

                http://mirrors.163.com

        2、程序包的官方站点

        3、第三方组织

                Fedora-EPEL

                搜索引擎:

                        http://pkgs.org

                        http://rpmfind.net

                        http://rpm.pbone.net


安装:

 rpm {-i|--install} [install-options] PACKAGE_FILE ...

        -i         安装

        -v        显示更多信息

        -h        显示进度

        [install-options]

            --test                测试安装

            --nodeps          忽略包依赖关系*

            --replacepkgs   重新安装*

            --nosignature   不检查包的来源合法性

            --nodigest        不检查包的完整性

            --noscripts        不执行某脚本

                   --nopre          不执行安装前脚本

                   --nopost        不执行安装后脚本

                   --nopreun      不执行卸载钱脚本

                   --nopostun    不执行卸载后脚本

rpm -ivh  packages_file


升级:

        rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...    之前有旧版程序包则升级,否者安装

        rpm {-F|--freshen} [install-options] PACKAGE_FILE ...       之前有旧版程序包则升级,否者不执行操作

                rpm  -Uvh  package_file

                rpm  -Fvh  package_file

                --oldpackage    允许老版本覆盖新版本

                --force               强制升级,不管兼容不兼容

                --nodeps           忽略依赖关系

        

注意:

        不要对内核升级,Linux支持多内核并存,直接安装新版本内核。

        升级后新版的配置文件并不会直接覆盖原有的,会生成filename.rpmnew的配置文件。


查询:

        rpm {-q|--query} [select-options] [query-options]

                -q        查询模式

                [select-options]

                    -a        查询所有包

                    -f         查询指定的软件由那个程序生成,例:rpm -qf  /bin/ls

                    -p        查询未安装的包信息

                    --whatprovides     CAPABILITY:查询指定的CAPABILITY由哪个包所提供;

                    --whatrequires      CAPABILITY:查询指定的CAPABILITY被哪个包所依赖;

                [query-options]

                    --changelog        查看rpm包的修改日志

                    -c            配置文件

                    -d            查询程序的帮助文档

                    -i             查询各种信息

                    -l             软件安装后生成的所有文件

                    --scripts  安装后生成的所有脚本

                    -R            查询指定的程序包所依赖的CAPABILITY

                    --provides    列出指定程序包所提供的CAPABILITY

        

卸载:

        rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]

                -e                卸载模式

                --nodeps    忽略依赖关系


校验:

        rpm {-V|--verify} [select-options] [verify-options]

                -V        校验模式,rpm -V packages


例:rpm -V sudo

        S.5....T.  c /etc/sudoers

        

        S.5....T.  c 这个显示的信息表示如下:

            S     file Size differs

            M     Mode differs (includes permissions and file type)

            5     digest (formerly MD5 sum) differs

            D     Device major/minor number mismatch

            L     readLink(2) path mismatch

            U     User ownership differs

            G     Group ownership differs

            T     mTime differs

            P     caPabilities differ

        不匹配的信息会显示出来。


验证包的来源合法性:

        rpm  --import  RPM-GPG-KEY-CentOS-6        光盘里面公钥RPM-GPG-KEY-CentOS-6,导入rpm即可。


重建rpm包的数据库:

        数据库目录:/var/lib/rpm/

        数据库重建是重新读取软件信息而重建的。

        rpm {--initdb | --rebuilddb}

                initdb          初始化,不存在则重建,否者不执行

                rebuilddb    重建,无论是否存在,直接重新创建数据库