程序包管理

Windows与Linux不兼容

库级别虚拟化:

Linux:WINE

Windows:Cygwin

 

程序包管理器:

debian:deb,dpt

redhat:rpm,rpm

 

Archlinux

Gentoo

 

获取rpm程序包的途径:

1、系统发行版光盘或官方的服务器

centos镜像:

http://mirrors.aliyun.com

http://mirrors.sohu.com

http://mirrors.163.com

2、项目官方站点

3、第三方组织:

Fedora-EPEL

搜索引擎:

https://pkgs.org/

http://rpmfind.net/

http://rpm.pbone.net/

4、自己制作;

 

rpm命令实现程序管理:

安装:-ivh,–nodeps,–replacepkgs

卸载:-e,–nodeps

升级:-Uvh,-Fvh,–nodeps,–oldpackage

查询:-q,-qa,-qf,-qi,-ql,-qd,-qc,-q –scripts,-q –provides,-q –requires

校验:-V

导入GPG密钥:–import,-K,–nodigest(),–nosignature

数据库重建:–initdb,–rebuilddb

 

CentOS的rpm前端工具:yum,dnf

yum repo:储存了众多的rpm包,以及包的相关的元数据文件(放置于特定目录下:repodata);

 

yum客户端配置文件:/etc/yum.conf,/etc/yum.repos.d/*.repo

仓库的定义文件:

[repositoryid]
name=Some name for this repository

baseurl=url://path/to/repository/

enabled={1|0}

gpgcheck{1|0}

gpgkey=URL

failovermethod=roundrobin|priority

cost=默认为1000

 

yum命令的用法:

显示仓库列表:

repolist [all|enabled|disabled]

显示程序包:

list

安装程序包:

install package1 [package2] […]

reinstall package1 [package2] […](重新安装)

升级程序包:

update [package1] [package2] […]

downgrade package1 [package2] […](降级)

检查可用升级:

check-update

卸载程序包:

remove | erase package1 [package2] […]

查看程序包信息:

info

查看指定的特性(可以是某文件)是由哪个程序包所提供:

provides | whatprovides feature1 [feature2] […]

清理本地缓存:

clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

构建缓存:

makecache

搜索:以指定关键字搜索程序包及summary信息:

search string1 [string2] […]

查看指定包所依赖的capability:

deplist package1 [package2] […]

查看yum事务历史:

history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]

包组管理的相关命令:

group list

group info

group update

group install

group remove

 

如何实用光盘当做本地yum仓库:

(1)挂载光盘至某目录,例如/media/cdrom

# mount -r -t iso9660 /dev/cdrom /media/cdrom

(2)创建配置文件

[CentOS7]

name=

baseurl=

enabled=

gpgcheck=

 

yum命令行的选项

–nogpgcheck:禁止进行gpg check;

-y:自动回答为“yes”;

-q:静默模式,也自动回答为yes;

–disablerepo=repoidglob:临时禁用此处指定的repo;

–enablerepo=repoidglob:临时启用此处指定的repo;

–noplugins:禁用所有插件;

 

yum的repo配置文件中可用的变量:

$releasever:当前OS的发行版的主版本号;

$arch:平台;

$basearch:基础平台;

$YUM0-$YUM9:自定义变量

 

创建yum仓库:

createrepo [options] <directory>

 

编译安装三步骤:

./configure:

(1)通过选项传递参数,指定启用特性、安装路径等,执行时会参考用户的指定及makefile.in文件生成makefile;

(2)检查依赖到的外部环境;

make:

根据makfile文件,构建应用程序;

make install

 

开发工具:

autoconf:生成configure脚本;

automake:生成makefile.in

建议:安装前查看INSTALL,README

 

开源程序源代码的获取:

1、官方自建站点:例如apache.org;mariadb.org

2、代码托管:SourceForge、github.com、code.google.com

 

编译C源代码:

前提:提供开发工具及开发环境:

开发工具:gcc、make等;

开发环境:开发库、头文件

glibc:标准库

通过包组提供开发组件:

centos6:“development tools”、“server platform development”

centos7:“development tools”

第一步:configure脚本

选项:指定安装位置、指定启用的特性等

–help:获取其支持使用的选项

选项分类:

1、安装路径设定:

–prefix=:指定默认安装位置;默认为/usr/local/

–sysconfdir=:指定配置文件的安装位置;

2、system types:

optional feature:可选特性;

–disable-FEATURE

–enable-FEATURE[=ARG]

optional packages:可选包;

–with-PACKAGE[=ARG]

–without-PACKAGE

第二步:make

第三步:make install

 

安装后的配置:

(1)导出二进制程序目录至PATH环境变量中;

编辑文件/etc/profile.d/NAME.sh

export PATH=/PATH/TO/BIN:$PATH

重新加载下此配置文件:

# source /etc/profile.d/NAME.sh

(2)导出库文件路径;

编辑/etc/ld.so.conf.d/NAME.conf

添加新的库文件所在目录位置至此文件中;例如:/usr/local/apache2/lib

让系统重新生产缓存:

ldconfig [-v]

(3)导出头文件;

基于符号链接的方式实现:

ln -sv 头文件目录 /usr/include/NAME

(4)导出帮助手册;

编辑/etc/man_db.conf文件

添加一个MANPATH

 

源码制作成rpm程序包

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90824

(0)
N26-深圳-城市蜗牛N26-深圳-城市蜗牛
上一篇 2018-01-03 22:42
下一篇 2018-01-04 09:47

相关推荐

  • 【LINUX编译安装程序】Centos7.4编译安装httpd 2.4.29

    举例:Centos7.4编译安装httpd 2.4.29

    Linux干货 2018-03-17
  • Linux终端类型

    前言 终端是一个很重要的外设,用过终端设备的人都知道如果设备类型不对就会有乱字符,也可用仿真终端软件如netterm试验一下,Linux的终端信息放在 /usr/share/terminfo下,在这个目录的子目录v下就有许多的如vt100,vt102,vt200等,看一下就知道了。 终端类型的区别与概念 1、 pty(虚拟终端): 但是如果我们远程telne…

    Linux干货 2016-10-14
  • 命令组合实战

    1 列出/etc/下以。conf结尾的文件 [redsun@jiange root]$ ls  /etc/*.conf | tr 'a-z' 'A-Z'  | sed 's/ETC/etc/' > /tmp/etc.conf [redsun@jiange root]$ mo…

    Linux干货 2016-11-13
  • 第十一周

    1、详细描述一次加密通讯的过程,结合图示最佳。 2、描述创建私有CA的过程,以及为客户端发来的证书请求进行办法证书。 CA 服务器端: (1)生成 CA 服务器的私钥 (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096) (2)生成 CA服务器自谦证书 openssl req …

    Linux干货 2017-03-30
  • 进程的基本动作机制

    进程 我们知道硬件到用户使用分为:硬件,内核(系统),软件。 硬件也就是我们常见到的计算机等等,就相当于我们的身体,内核就相当于是我们的大脑,软件就相当于我们的动作。而进程就相当于我们怎么去实现这些动作。 进程是程序的一个具体实现,同一个程序可以执行多次,每次都可以在内存中开辟独立的空间来装载,从而产生多个进程。不同的进程还可以拥有各自独立的IO接口。 进程…

    Linux干货 2016-06-01
  • linux 查找过滤及用户和组管理命令的一些事例

    1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d' ' -f1 | sort | uniq 2.列出最后登录到当前系统的用户的相关信息。 ~]# last | head -1 3.列出当前系统上被用户当作其默认shell的最多的那个shell。  ~]#…

    Linux干货 2016-10-05