程序包管理

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

相关推荐

  • 源码包编译安装MariaDB-10.1.22

    源码包编译安装MariaDB-10.1.22 1、获取源码包        mariadb-10.1.22.tar.gz 2、编译环境及依赖关系     yum groupinstall -y Development Tools yum -y install …

    Linux干货 2017-03-16
  • linux 学习笔记

    第一周

    Linux干货 2018-03-16
  • 接51CTO:13 用户组和权限管理3

    用户组和权限管理3 一、杂项知识整理 1、硬链接:写源文件可以是相对地址,相对于链接文件。例如 [root@localhost testdir]# ln ../etc/fstab aaa ln: 无法创建硬链接"aaa" => "../etc/fstab…

    Linux干货 2016-08-04
  • grep初步认识

    grep初步认识

    Linux干货 2017-12-03
  • 源码编译安装dropbear

    tar -jxf dropbear-2013.58.tar.bz2 cd dropbear-2013.58 ./configure make PROGRAMS=”dropbear dbclient dropbearkey dropbearconvert scp” make PROGRAMS=”dropbear dbclie…

    Linux干货 2017-10-21
  • NTP服务器搭建

        1、NTP(Network Time Protocol)         在计算机世界中,NTP(Network Time Protocol,网络时间协议)被广泛用于对时间的统一性和准确性要求非常高的场景,是用来使网络中的各个计算机时间同步的一种协议。…

    Linux干货 2015-11-18