程序包管理

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
下一篇 2018-01-04

相关推荐

  • ACL权限详解

    1.ACL简介 2.前期准备 3.ACL的基本操作:添加和修改 4.ACL的其他功能:删除和覆盖 5.目录的默认ACL 6.备份和恢复ACL 7.结束语 1.ACL简介 用户权限管理始终是Linux系统管理中最重要的环节。大家对Linux/Unix的UGO权限管理方式一定不陌生,还有最常用的chmod命令。为了实现一些比较复杂的权限管理,往往不得不创建很多的…

    Linux干货 2017-03-11
  • 13-高级文件系统管理-Quota,RAID,LVM

    配置配额系统     综述         在内核中执行         以文件系统(磁盘分区)为单位启用         对不同组或者用户的策略不同         根据块或者节…

    2017-03-16
  • shell脚本编程基础

    一.编程基础              程序:指令+数据              程序编程风格:  &n…

    Linux干货 2016-08-12
  • 破坏grub实验之二

    删除/etc/fstab和/boot和grub的stage1阶段 [root@localhost ~]# rm -rf /boot [root@localhost ~]# rm -rf /etc/fstab  [root@localhost ~]# …

    Linux干货 2016-09-28
  • 第二周作业

    linux 文件管理命令 rm、mv、cp rm rm命令:remove rm [OPTION]… FILE… 常用选项: -i:interactive (默认rm是‘rm -i’的别名) -f:force -r: recursive        &nb…

    Linux干货 2016-12-08
  • 浅谈Nginx(二)—http下server配置

    浅谈Nginx(二)—http下server配置 此文介绍Nginx下的http模块,着重介绍http模块下的server服务 ——–依据”马哥教育”主讲人马永亮导师的上课笔记整理——- 目录  一. http相关的基本配置:     1)…

    系统运维 2017-02-07