摘要:例如包安装的启动方法源码包安装的服务不能被服务管理命令管理,因为没有安装到默认路径中,所有只能使用绝对路径今次那个服务管理。
一、源码包的特点 1. 优点
开源,如果能力足够,可以修改源代码
可以自定义选择所需的功能
软件是编译安装,所以更加适合自己的系统,更加稳定,效率更高
卸载方便,直接删除安装目录即可,不会有任何残留
2. 缺点安装过程步骤较多,尤其是安装较大的软件集合时(例如LAMP环境搭建)
编译过程时间较长,安装比二进制安装时间长
因为是编译安装,安装过程中一旦报错,新手很难解决
3. 源码包与RPM包的区别源码包 | RPM包 | |
---|---|---|
包类型 | 未经过编译,源码可见 | 编译之后的二进制包 |
定制性 | 可以自定义选择所需的功能 | 自定义功能选择不灵活 |
安装、升级 | 步骤多,编译时间长 | 使用rpm命令直接安装、升级,简单,速度快 |
卸载 | 没有卸载命令,直接删除安装目录即可,无残留 | 使用rpm卸载命令卸载 |
RPM包默认安装位置(仅供参考)
rpm 包默认安装位置由该软件包的开发者决定
rpm 包也可以通过 --prefix=选项指定安装目录
目录 | 说明 |
---|---|
/etc/init.d/ | 启动脚本所在目录 |
/etc/sysconfig/ | 初始化环境配置文件目录 |
/etc/ | 配置文件安装目录 |
/var/log/ | 日志文件目录 |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存目录 |
/usr/share/doc/ | 基本的软件使用手册保存目录 |
/usr/share/man/ | 帮助文件保存目录 |
源码包安装位置
源码包安装时需要指定安装位置,一般是 /usr/local/软件名/
RPM包安装的服务可以使用系统服务管理命令(service)来管理。
例如RPM包安装的nginx启动方法
service nginx start /etc/rc.d/init.d/nginx start
源码包安装的服务不能被服务管理命令管理,因为没有安装到默认路径中,所有只能使用绝对路径今次那个服务管理。
例源码包安装的nginx启动方法
/usr/local/nginx/sbin/nginx二、源码包安装软件 0. 安装注意事项
安装过程终止
并出现error、warning或no的提示
以 nginx 为例,演示源码包安装过程1. 安装准备
yum -y install gcc
wget http://nginx.org/download/nginx-1.14.0.tar.gz
[root/usr/local/src]$wget http://nginx.org/download/nginx-1.14.0.tar.gz --2018-05-23 09:16:19-- http://nginx.org/download/nginx-1.14.0.tar.gz Resolving nginx.org (nginx.org)... 95.211.80.227, 206.251.255.63, 2606:7100:1:69::3f, ... Connecting to nginx.org (nginx.org)|95.211.80.227|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1016272 (992K) [application/octet-stream] Saving to: ‘nginx-1.14.0.tar.gz’ 100%[=================================================>] 1,016,272 164KB/s in 8.8s 2018-05-23 09:16:29 (113 KB/s) - ‘nginx-1.14.0.tar.gz’ saved [1016272/1016272]
[root/usr/local/src]$tar -zxf nginx-1.14.0.tar.gz
[root/usr/local/src]$cd nginx-1.14.0 [root/usr/local/src/nginx-1.14.0]$ll total 732K drwxr-xr-x 6 vagrant vagrant 4.0K May 23 10:43 auto/ -rw-r--r-- 1 vagrant vagrant 281K Apr 17 15:22 CHANGES -rw-r--r-- 1 vagrant vagrant 428K Apr 17 15:22 CHANGES.ru drwxr-xr-x 2 vagrant vagrant 4.0K May 23 10:43 conf/ -rwxr-xr-x 1 vagrant vagrant 2.5K Apr 17 15:22 configure* drwxr-xr-x 4 vagrant vagrant 68 May 23 10:43 contrib/ drwxr-xr-x 2 vagrant vagrant 38 May 23 10:43 html/ -rw-r--r-- 1 vagrant vagrant 1.4K Apr 17 15:22 LICENSE drwxr-xr-x 2 vagrant vagrant 20 May 23 10:43 man/ -rw-r--r-- 1 vagrant vagrant 49 Apr 17 15:22 README drwxr-xr-x 9 vagrant vagrant 84 May 23 10:43 src/2. 开始安装
./configure - 定义需要的功能选项 - 监测系统环境是否符合安装要求 - 把定义好的功能选项和检测系统环境的信息都写入`Makefile`文件,用于后续的编辑
查看帮助
./configure --help
[root/usr/local/src/nginx-1.14.0]$./configure --help --help print this message --prefix=PATH set installation prefix --sbin-path=PATH set nginx binary pathname --modules-path=PATH set modules path --conf-path=PATH set nginx.conf pathname ...省略... --with-debug enable debug logging
指定安装目录为 /usr/local/nginx,指定命令文件所在目录为 /usr/local/sbin/nginx
./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/sbin/nginx
[root/usr/local/src/nginx-1.14.0]$./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/sbin/nginx checking for OS + Linux 3.10.0-229.el7.x86_64 x86_64 checking for C compiler ... found + using GNU C compiler + gcc version: 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) checking for gcc -pipe switch ... found ...省略... creating objs/Makefile Configuration summary + using system PCRE library + OpenSSL library is not used + using system zlib library nginx path prefix: "/usr/local/nginx" nginx binary file: "/usr/local/sbin/nginx" nginx modules path: "/usr/local/nginx/modules" nginx configuration prefix: "/usr/local/nginx/conf" nginx configuration file: "/usr/local/nginx/conf/nginx.conf" nginx pid file: "/usr/local/nginx/logs/nginx.pid" nginx error log file: "/usr/local/nginx/logs/error.log" nginx http access log file: "/usr/local/nginx/logs/access.log" nginx http client request body temporary files: "client_body_temp" nginx http proxy temporary files: "proxy_temp" nginx http fastcgi temporary files: "fastcgi_temp" nginx http uwsgi temporary files: "uwsgi_temp" nginx http scgi temporary files: "scgi_temp"
查看生成的 Makefile 文件
[root/usr/local/src/nginx-1.14.0]$ll total 736K drwxr-xr-x 6 vagrant vagrant 4.0K May 23 10:43 auto/ -rw-r--r-- 1 vagrant vagrant 281K Apr 17 15:22 CHANGES -rw-r--r-- 1 vagrant vagrant 428K Apr 17 15:22 CHANGES.ru drwxr-xr-x 2 vagrant vagrant 4.0K May 23 10:43 conf/ -rwxr-xr-x 1 vagrant vagrant 2.5K Apr 17 15:22 configure* drwxr-xr-x 4 vagrant vagrant 68 May 23 10:43 contrib/ drwxr-xr-x 2 vagrant vagrant 38 May 23 10:43 html/ -rw-r--r-- 1 vagrant vagrant 1.4K Apr 17 15:22 LICENSE -rw-r--r-- 1 root root 370 May 23 11:07 Makefile drwxr-xr-x 2 vagrant vagrant 20 May 23 10:43 man/ drwxr-xr-x 3 root root 119 May 23 11:07 objs/ -rw-r--r-- 1 vagrant vagrant 49 Apr 17 15:22 README drwxr-xr-x 9 vagrant vagrant 84 May 23 10:43 src/ [root/usr/local/src/nginx-1.14.0]$cat Makefile default: build clean: rm -rf Makefile objs build: $(MAKE) -f objs/Makefile install: $(MAKE) -f objs/Makefile install modules: $(MAKE) -f objs/Makefile modules upgrade: /usr/local/sbin/nginx -t kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` sleep 1 test -f /usr/local/nginx/logs/nginx.pid.oldbin kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
若编译出错,可以使用 make clean 命令清除编译结果
[root/usr/local/src/nginx-1.14.0]$make make -f objs/Makefile make[1]: Entering directory `/usr/local/src/nginx-1.14.0" cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/un ix -I objs -o objs/src/core/nginx.o src/core/nginx.c ...省略... objs/ngx_modules.o -ldl -lpthread -lcrypt -lpcre -lz -Wl,-E sed -e "s|%%PREFIX%%|/usr/local/nginx|" -e "s|%%PID_PATH%%|/usr/local/nginx/logs/nginx.pid|" -e "s|%%CONF_PATH%%|/usr/local/nginx/conf/nginx.conf|" -e "s|%%ERROR_LOG_PATH%%|/usr/local/nginx/logs/error.log|" < man/nginx.8 > objs/nginx.8 make[1]: Leaving directory `/usr/local/src/nginx-1.14.0"
[root/usr/local/src/nginx-1.14.0]$make install make -f objs/Makefile install make[1]: Entering directory `/usr/local/src/nginx-1.14.0" test -d "/usr/local/nginx" || mkdir -p "/usr/local/nginx" ...省略... test -d "/usr/local/nginx/logs" || mkdir -p "/usr/local/nginx/logs" make[1]: Leaving directory `/usr/local/src/nginx-1.14.0"
软件安装目录
[root~]$ll /usr/local/nginx/ total 4.0K drwxr-xr-x 2 root root 4.0K May 23 11:22 conf/ drwxr-xr-x 2 root root 38 May 23 11:22 html/ drwxr-xr-x 2 root root 55 May 23 11:28 logs/
命令所在目录
[root~]$ll /usr/local/sbin/ total 3.6M -rwxr-xr-x 1 root root 3.6M May 23 11:22 nginx*
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/10718.html
摘要:文章内容来自一命令管理命名规则安装命令包全名选项安装显示详细信息显示进度不检测依赖性这个作用不大升级与卸载升级包全名选项卸载包名卸载,普通卸载,考虑到依赖性,可能会报错包名强制卸载,不考虑依赖性选项卸载不检查依 文章内容来自 一、rpm 命令管理 1. rpm 命名规则 showImg(https://segmentfault.com/img/bVDYYJ?w=697&h=394); ...
摘要:文章内容来自一命令管理命名规则安装命令包全名选项安装显示详细信息显示进度不检测依赖性这个作用不大升级与卸载升级包全名选项卸载包名卸载,普通卸载,考虑到依赖性,可能会报错包名强制卸载,不考虑依赖性选项卸载不检查依 文章内容来自 一、rpm 命令管理 1. rpm 命名规则 showImg(https://segmentfault.com/img/bVDYYJ?w=697&h=394); ...
摘要:此时可以通过添加新的源来解决如中安装安装获取警告头密钥准备中正在升级安装此时中增加了一个新文件名称源地址是否检查,表示不检查这里等于表示不启用,为表示启用现在就可以通过命令安装了当服务器没有网络可用时,还能够设置本地源。 linux中软件包的管理随着系统发行版本的不同而不同,RPM和DPKG为最常见的两类软件包管理工具,分别应用于基于rpm软件包的linux发行版和基于deb软件包的l...
摘要:但实际安装的还是源码包和二进制包。而且要注意路径。包名操作已经安装的软件包时,使用包名。实际上是搜索中的数据库。 软件包管理简介 1. 软件包分类 源码包 二进制包(RPM包、系统默认包) 2. 源码包 优点 开源,如果能力足够,可以修改源代码 可以自定义选择所需的功能 软件是编译安装,所以更加适合自己的系统,更加稳定,效率更高 卸载方便,直接删除安装目录即可,不会有任何残留 ...
摘要:但实际安装的还是源码包和二进制包。而且要注意路径。包名操作已经安装的软件包时,使用包名。实际上是搜索中的数据库。 软件包管理简介 1. 软件包分类 源码包 二进制包(RPM包、系统默认包) 2. 源码包 优点 开源,如果能力足够,可以修改源代码 可以自定义选择所需的功能 软件是编译安装,所以更加适合自己的系统,更加稳定,效率更高 卸载方便,直接删除安装目录即可,不会有任何残留 ...
摘要:但实际安装的还是源码包和二进制包。优点安装简单快捷缺点完全丧失了自定义性总结其实中软件包只有源码包和二进制包两种软件安装包。源码包安装位置安装在指定位置当中,一般是软件名源码包安装的服务,只能用绝对路径进行服务的管理。 一、Linux软件包分类 1.1 源码包 优点: 开源,如果有足够的能力,可以修改源代码; 可以自由选择所需的功能; 软件是编译安装,所以更加适合自己的系统,...
阅读 892·2021-11-16 11:45
阅读 2934·2021-10-13 09:40
阅读 2537·2021-09-09 09:33
阅读 22313·2021-09-02 15:41
阅读 3014·2021-09-02 15:40
阅读 596·2019-08-26 13:45
阅读 1022·2019-08-26 13:32
阅读 2043·2019-08-26 13:23