程序包管理

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发展史

    Linux发展史 Linux的简单介绍 Linux操作系统诞生于1991 年,是一套免费使用和自由传播的类Unix操作系统。Linux存在着许多不同的Linux发行版本。严格意义上的Linux系统应该是GUN/Linux(kernel+Application)而Linux本身只表示Linux系统内核,但实际上人们已经习惯了用Linux称呼GUN/Linux系…

    Linux干货 2016-10-13
  • N26-第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。     ~]#cp -r /etc/skel /home/tuser1     ~]#chmod -R go=-rwx /home/tuser1…

    Linux干货 2017-01-05
  • PHP通过Thrift操作Hbase

    HBase是一个开源的NoSQL产品,它是实现了Google BigTable论文的一个开源产品,和Hadoop和HDFS一起,可用来存储和处理海量column family的数据。官方网址是:http://hbase.apache.org 一 、HBase访问接口 1.  Native Java API,最常规和高效的访问方式,适合Hadoop …

    Linux干货 2015-05-18
  • 加密与CA

    一次加密通讯流程: 1、生成数据 2、用单向加密数据生成特征码 3、用自己的私钥加密特征码放在数据后面 4、生成临时会话密钥加密特征码和数据 5、用对方的公钥加密临时密钥 2、私有CA 构建私有CA     1、生成私钥     2、自签署证书 给节点发放证书     …

    Linux干货 2017-02-13
  • Linux基础 文件权限

    概述 从接触linux第一天开始,Linux一切皆文件的哲学思想就深植于每个linuxer的心中,因此,实现Linux的系统安全必然绕不开文件权限。文件的权限是建立在用户的基础上的,脱离了用户,文件权限也就变得毫无意义了。用户、组和文件权限一起铸就了linux的系统安全模型。本文主要从文件权限方面了解Linux的安全模型。 文中主要讲解了: 1. 文件权限r…

    Linux干货 2016-08-05
  • shell 脚本中数组的总结

    描述:   变量是存储单个元素的内存空间,而数组是多个变量的集合,是一个连续的空间;但整个数组只能有 的名字。   数组内的数据都有指定的索引,从而找到数组内所指定的数据。索引的编号是从0开始的,依次递增(0,1,2,3,…),这种方式叫数值索引。格式为:数组名[索引];${ARRAY_NAME[INDEX]}。索引也支持自定…

    Linux干货 2016-08-29