linux源码包管理

8.2 源码包管理

source code需要经过GC,C++编译环境编译才能运行
​
可以设定个人设置,但配置复杂
​
软件包示例: nginx-1.8.1.tar.gz

---------------------------------------------------------------------------------------------------------------------------------

8.2.1 获取源码包

官方网站,可以获得最新的软件包:

Apache:wwwapache.org
Nginx:www.nginx.org
Tengine:tengine.taobao.org

=========================================================================

8.2.2 实例

源码包安装步骤:
1.准备编译环境,如编译器
2.下载与解压
3.配置
4.编译
5.安装
6.启动测试

---------------------------------------------------------------------------------------------------------------------------------

1.准备编译环境,如编译器

yum install -y gcc make zlib-devel pcre pcre-devel openssl-devel

2.下载与解压

下载方法一:
# 安装wget
yum install -y wget
​
# 下载源代码
wget https://tengine.taobao.org/download/tengine-2.4.1.tar.gz
​
下载方法二:
虚拟机安装VMtools:虚拟机-》安装VMtools
从原机下载并复制,注意检查大小
​
useradd li  # 非必须创建
tar -xvf tengin-2.4.1.tar.gz
cd tengin-2.4.1
​
# 域名解析有误
vim /etc/resolv.conf
nameserver=8.8.8.8
nameserver=8.8.4.4

3.配置

./configue --user=li --group=li --prefix=/usr/local/nginx
​
# 如果有问题,删除文件夹,重新解压

4.编译

make

5.安装

make install

6.启动测试

# 停止httpd服务及防火墙
systemctl stop httpd
systemctl stop firewalld
​
/usr/local/nginx/sbin/nginx
# 使用浏览器访问本机的IP,http://127.0.0.1,如果能看到NGINX的网页,说明部署成功。

Linux源码包管理是指在Linux操作系统中,对软件源代码进行打包、分发、安装、升级和卸载的一种方法。源码包通常包含了软件的源代码以及编译所需的配置文件和脚本,用户可以通过源码包来安装软件,也可以根据自己的需求进行定制化修改。
在Linux源码包管理中,主要涉及到以下几个步骤:
1. 获取源码包:用户可以从软件官网、开源社区或者Linux发行版的源码包仓库中获取所需的源码包。源码包通常以.tar.gz或.tar.bz2格式压缩,可以通过wget、curl等命令下载。
2. 解压源码包:获取源码包后,需要使用tar命令将其解压,解压后的目录包含了软件的源代码以及编译所需的配置文件和脚本。
3. 编译源码:在解压源码包后,需要使用编译器(如gcc、g++等)对源代码进行编译。编译过程可能会涉及到依赖库的安装和链接,需要确保系统中已安装了所有依赖的库。
4. 安装软件:编译完成后,需要将编译生成的可执行文件、库文件等安装到系统中。安装过程可能需要管理员权限,可以使用sudo命令进行权限提升。
5. 配置软件:根据软件的需要,可能需要对软件进行配置,如设置软件的运行参数、安装路径等。配置过程通常涉及修改配置文件或者运行安装脚本。
6. 升级和卸载:对于已经安装的源码包,可以通过重新获取源码包、编译和安装的方式实现软件的升级。卸载源码包则需要删除安装文件,并取消相关的配置。
与二进制包管理相比,Linux源码包管理具有以下优点:
1. 可定制性:用户可以根据自己的需求修改源代码,定制化软件的功能和性能。
2. 兼容性:源码包可以在不同的Linux发行版上编译和运行,不受操作系统版本的限制。
3. 安全性:源码包可以让用户检查和审计软件的源代码,提高软件的安全性。
然而,Linux源码包管理也有一些缺点:
1. 安装速度慢:编译源代码需要消耗较长的时间,尤其是在硬件性能较低的情况下。
2. 报错不易解决:编译过程中可能会出现各种错误,对于不熟悉编译过程和依赖库的用户来说,解决错误可能比较困难。
3. 依赖库管理复杂:源码包管理需要自行解决依赖库的问题,对于一些复杂的软件,可能需要安装大量的依赖库。

Guff_hys_python数据结构,大数据开发学习,python实训项目-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/226179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

知识付费小程序开发:构建个性化学习平台的技术实践

随着在线学习和知识付费的兴起,开发一款知识付费小程序成为了创新的热点之一。本文将通过使用Node.js、Express和MongoDB为例,演示如何构建一个基础的知识付费小程序后端,并实现用户认证和知识内容管理。 1. 初始化项目 首先,确…

CSS复合选择器(在基础选择器上元素选择的方式不同)

后代选择器: ------------ 此情况下,红色的可以划去 子(元素)选择器: 并集选择器: 伪类选择器: 如放上字符会变色。 链接伪类选择器: foucus伪类选择器:

matplotlib如何在label中加入字符并换行【已解决】

最近在跑一个超参数的实验,但是发现x轴的刻度就很丑 显然,lr和theta在一行显得很冗余 这个是此时的label x_labels [$\t{lr0.05}\ \tθ10}$, 40, 60] 正常加换行符即可,但是要加上$$ x_labels [$\t{lr0.05}\ $\n$ \tθ10}$, 40, 60] 大…

听力健康“吃”出来

大多数的研究报告都指出,听力下降的最常见原因是年龄和噪音暴露。然而,近年来越来越多的文章开始探讨其他因素对听力的影响。食物不仅是维持人类基本生存的必需品,随着营养学的进步,人们也逐渐认识到食物中的营养与保持健康之间存…

zabbix6入门到精通(3) 预处理

zabbix6入门到精通(3) 预处理 配置 — 主机 文件系统主项目 vfs.fs.get 测试一下 添加预处理 $[?(.fsname ‘/’)] $[0].inodes.pfree JSONPath参照: https://www.zabbix.com/documentation/6.0/zh/manual/config/items/preprocessi…

【halcon深度学习】目标检测的数据准备过程中的一个库函数determine_dl_model_detection_param

determine_dl_model_detection_param “determine_dl_model_detection_param” 直译为 “确定深度学习模型检测参数”。 这个过程会自动针对给定数据集估算模型的某些高级参数,强烈建议使用这一过程来优化训练和推断性能。 过程签名 determine_dl_model_detection…

Codeforces Round 914 (Div. 2) A~E

A.Forked!(思维) 题意: 给出骑士的跳跃能力 ( x , y ) (x, y) (x,y) 以及国王和皇后的位置,问有多少个位置可以让骑士可以直接攻击到国王和皇后。 分析: 棋盘非常大 ( 1 0 8 1 0 8 ) (10^{8} \times 10^{8}) (1…

Tomcat-指定启动jdk、修改使用的jdk版本

修改tomcat配置文件setclasspath.sh 配置文件首行增加以下代码,指定启动的jdk: export JAVA_HOME/opt/softwares/jdk1.8.0_211/ export JRE_HOME/opt/softwares/jdk1.8.0_211/jre

drf入门规范

一 Web应用模式 在开发Web应用中,有两种应用模式: 1.1 前后端不分离 1.2 前后端分离 二 API接口 为了在团队内部形成共识、防止个人习惯差异引起的混乱,我们需要找到一种大家都觉得很好的接口实现规范,而且这种规范能够让后端写…

获取和移除cookie的方法

下载npm的cookie插件, 在utils.js文件中引入插件: 封装原始的Cookies.get()方法: 在xxxx.vue文件中引入方法: 使用getCookie方法获取cookie: 封装 移除cookie: export const removeCookie name>{ const options { path: /, domain: xxx.com }; Cookies.remove(name, opti…

i春秋云镜之Tsclient

首先拿到目标:39.99.137.155 首先通过Fscan扫描目标: 可以看到扫描出来了一个SqlServer的弱口令。 账号是sa,密码是1qaz!QAZ。 这里就不使用navicat进行连接了,这里使用impacket-mssqlclient进行连接。 impacket-mssqlclient sa:1qaz!QAZ39.99.137.…

yolov5单目测距+速度测量+目标跟踪

要在YOLOv5中添加测距和测速功能,您需要了解以下两个部分的原理: 单目测距算法 单目测距是使用单个摄像头来估计场景中物体的距离。常见的单目测距算法包括基于视差的方法(如立体匹配)和基于深度学习的方法(如神经网…

数据结构之---- 分治算法

数据结构之---- 分治算法 什么是分治算法? 分治,全称分而治之,是一种非常重要且常见的算法策略。 分治通常基于递归实现,包括 分 和 治 两个步骤: 分(划分阶段):递归地将原问题分…

冰镇的红酒有什么特色呢?

冰镇红酒远不是一个新现象,大多数葡萄酒饮用者仍然坚持白葡萄酒应该冰镇后饮用,而红葡萄酒应该在室温下饮用这种过时的信念。在几十年或几个世纪的时间里,当“室温”更接近于地窖温度时,这种说法可能是正确的,但在当代…

01-C++基础

c概述 1. 概述 1.1 简介 “c” 中的 来自于 c 语言中的递增运算符,该运算符将变量加 1。 c起初也叫”c with class”。通过名称表明, c是对 c 的扩展,因此 c是 c 语言的超集,这意味着 任何有效的 c 程序都是有效的 c程序。 c程…

《PySpark大数据分析实战》-11.Spark on YARN模式安装Hadoop

📋 博主简介 💖 作者简介:大家好,我是wux_labs。😜 热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP…

我的隐私计算学习——匿踪查询

笔记内容来自多本书籍、学术资料、白皮书及ChatGPT等工具,经由自己阅读后整理而成。 (一)PIR的介绍 ​ 匿踪查询,即隐私信息检索(Private InformationRetrieval,PIR),是安全多方计算…

2012-12-12 下载ndk编译出so和可执行文件,放到android 真机运行,包含源码。

一、下载ndk链接NDK 下载 | Android NDK | Android Developers 二、解压ndk后得到下面的文件,里面包含ndk-build.cmd,这个是用来编译的。 三、Android.mk和C源码。完整源码下载路径https://download.csdn.net/download/qq_37858386/88622702 3.1 A…

k8s如何部署seata(分布式事务)?(第一篇)

k8s如何部署seata(分布式事务)? 官方传送门https://seata.io/zh-cn/ 快速入门SEATA Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站…

《Linux C编程实战》笔记:实现自己的ls命令

关键函数的功能及说明 1.void display_attribute(struct stat buf,char *name) 函数功能:打印文件名为name的文件信息,如 含义分别为:文件的类型和访问权限,文件的链接数,文件的所有者,文件所有者所属的组…