系统级
C
C++
应用级
java
python
php

程序包管理器
    debain:deb  dpt
    redhat:rpm
        redhat  package manager
    Gentoo
    Archlinux
rpm包命名
    name-version-arch.rpm
    arch:release.arch
    常见arch
    x86:i386;486;586;686
    x86_64:x64,x86_64,amd64
    powerpc:ppc
    和平台无关:noarch
    
    testapp:拆包
    

查看二进制成语依赖的库文件
ldd  /path/binaryfile
查看管理本机装载的库文件
    ldconfig
        /sin/ldconfig -p
        配置文件为 /etc/ld.so.conf  /etc/ld.so.conf/*.conf
        缓存文件 /etc/ld.so.cache
    

包管理rpm
前段工具yum  dnf


源  Fedora-EPLE
http://pkgs.org
rpmfind.net
rpm.pbone.net

rpm     -v  verbose
    -h  以#表示安装进度一个#表示%2
    -i  install
        --test  测试安装    
        --nodeps 忽略依赖性
        --replacepkgs 重新安装
        --nosignature  不检查来源合法性
        --nodigest 不检查包完整性
        --noscripts  不执行脚本片段
            %pre  安装前  --no..就是不
            %post 后
            %preun  卸载前
            %postun 后

rpm -Uvh
  upgrage安装有旧版程序包,则升级;不存在则安装
rpm -Fvh
 freeshen安装有旧版程序包,则升级;不存在则不升级


        --force 强制
        --oldpackages 降级
查询

-a  所有包
-qf或者-ql  /bin/ls
-c 配置
-d 文档
-i 信息
-l  安装后生成的所有文件
-R 查看指定程序包依赖的capability
--provides  提供的capability

-p  /path 针对未安装的包文件查询


一般 
-qi  pkgs  -qf file  -qc pkgs  -ql pkgs  -qd pkgs
-qpi pkgfile  -pql pkgfile
-qa 所有


卸载
-e

来源合法性
公钥加密:可以公开
私钥加密:自己用来加密的


对称加密:加密解密使用同一秘钥
非对称机密:秘钥成对

导入所需要的公钥
rpm --import  /GPGpPUBKEY-FILE


rpm数据库重建
rpm {--initdb|--rebuilddb}
  initdb 不存在则新建否则不建立
  rebuilddb 强制重建


yum文件服务器
ftp://
http://
nfs://
file://

配置文件  /etc/yum.conf
      /etc/yum.repo.d/X.repo

配置文件
[仓库名]
name:
baseurl=url://
enabled={1|0}    #写在前面的是默认启用
gpgcheck=0


yum list all|updates|available|install

yum check-update
yum erase|remove  pkgs  -y
查看程序包
yum info gcc

yum provides|whatprovides gcc


yum clean all|packages|metadata|expire-cache|rpmdb|plugins  清除元数据


构建缓存
make cache


search  关键字


deplist查看依赖性

yum history   [packages-list|packages-info|list|info]

yum groupinstall  pkgs

yum clean all
yum repolist


命令行
yum --nogpgcheck

  -q 静默
  --disablerepo=repoidglob  本次命令临时禁用此处指定的repo
  --enablerepo=repoidglob
  --noplugins  禁用所有插件

源代码组织格式
C、C++: make
java: maven

C源编译安装三步骤
./configure
    1)通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户指定以及makifile.in文件生成的makefile
    2)检查依赖到的外部环境
make
    根据makefile文件,构建应用程序
make install
    

开发工具:
    autoconf 生成configure脚本
    automake 生成makefile.in
    


gcc是(GNU C Complier)
编译C源代码:
    前提:提供开发工具和开发环境
        开发工具:make gcc等
        开发环境:开发库,头文件
            glibc:标准库

        通过“包组”提供开发环境 yum grouplist
        


 ./configure 
    --help  获取支持项
    安装路径设定
        --prefix=/path/    不指定则自动创建了
    
    可选特性
        --disable-FEATURE
        --enable-FEATURE

            可以选择启动默认不启动的
    可选程序包
        --with-PACKAGES
        --without-pkg

例如  cd httpd-2.2.29
./configure --prefix=/usr/local/apache2  --sysconfdir=/etc/httpd2
make
make install

安装后的配置
    1导出二进制程序目录至PATH环境变量中
     编辑文件/etc/profile.d/NAME.sh
        export PATH=/PATH/TO/BIN:$PATH
    2导出库文件路径
     编辑/etc/ld.so.conf.d/NAME.conf
        添加新的库文件所在目录到此文件中
     让系统重新生成缓存
        ldconfig [-v]
    3导出头文件
     基于连接的方式实现
     ln -sv 
    4导出帮助手册
     编辑/etc/man.config
        添加一个MANPATH参数