Python预安装包制作
预编译安装包
在Linux服务器上,经常会安装Python、Redis、Nginx等服务,不管离线、在线都需要编译、编译之前还需要安装一些依赖的环境,比如,openssl、gcc、g++等,但是make编译的时间过于长,严重影响心情,希望制作一个符合当前系统的预先编译好的包,可以拿来即用的。
编译Python3.9.8
在线环境安装所需依赖
yum install -y ncurses-devel gdbm-devel xz-devel sqlite-devel tk-devel uuid-devel readline-devel bzip2-devel libffi-devel
下载安装包到/usr/local/src
cd /usr/local/src
mkdir python
cd python
wget https://www.python.org/ftp/python/3.9.8/Python-3.9.8.tgz
tar xzf Python-3.9.8.tgz
cd Python-3.9.8
编译安装到/usr/local/python398
./configure --prefix=/usr/local/python398
make
make install
查看版本
python version
打包编译好的包
cd /usr/local
tar -zcvf python3.9.8.tar.gz python398
复制到别的环境测试,并解压
tar -zxvf python3.9.8.tar.gz
cd python3.9.8
查看结构
[root@centos python398]# ll
total 0
drwxr-xr-x. 2 root root 196 Aug 24 16:43 bin
drwxr-xr-x. 3 root root 23 Aug 24 16:06 include
drwxr-xr-x. 4 root root 62 Aug 24 16:06 lib
drwxr-xr-x. 3 root root 17 Aug 24 16:06 share
[root@centos python398]#
进入bin目录,修改以下文件
- 2to3-3.9
- idle3.9
- pip3
- pip3.9
- pydoc3.9
#!/usr/local/python398/bin/python3.9 # 替换成自己的解压目录
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
设置软连接
ln -s /usr/local/python398/bin/python3.9 /usr/bin/python3.9
ln -s /usr/local/python398/bin/pip3.9 /usr/bin/pip3.9
预编译openssl
安装依赖
yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel pcre-devel
下载安装/usr/local/src
cd /usr/local/src
mkdir openssl
cd openssl
wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz --no-check-certificate
tar xzf openssl-1.1.1q.tar.gz
cd openssl-1.1.1q
编译安装
./config --prefix=/usr/local/openssl1.1.1q
make
make install
echo "/usr/local/lib64/" >> /etc/ld.so.conf
ldconfig
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /usr/local/bin/openssl /usr/bin/openssl
检查openssl版本
openssl version
同样压缩好编译后的安装包,并同步到其他机器,测试执行openssl version检查版本
./openssl: error while loading shared libraries: libssl.so.1.1: cannot open
# 这个文件在系统中没找到,但搜索发现在:/usr/local/openssl1.1.1q/lib/libssl.so.1.1
意思是openssl自带了
执行以下命令,注意是自己的路径
export LD_LIBRARY_PATH=//usr/local/openssl1.1.1q/lib:$LD_LIBRARY_PATH
运行时动态库的搜索路径的先后顺序
- 编译目标代码时指定的动态库搜索路径;
- 环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
- 配置文件/etc/ld.so.conf中指定的动态库搜索路径;
- 默认的动态库搜索路径/lib和/usr/lib;
预编译Redis
wget http://download.redis.io/releases/redis-6.2.12.tar.gz
tar -zxvf redis-6.2.12.tar.gz
make
make install PREFIX=/usr/local/redis6.2
注意
遇到以下错误则执行make MALLOC=libc
cc: error: ../deps/jemalloc/lib/libjemalloc.a: No such file or directory
make[1]: *** [redis-server] Error 1
make[1]: Leaving directory `/root/test/redis-6.2.12/src'
make: *** [all] Error 2
完成后,/usr/local/redis6.2下面会生成bin
将解压后的配置文件复制跟bin同目录
root@sun75 redis6.2]# pwd
/usr/local/redis6.2
[root@sun75 redis6.2]# ll
total 92
drwxr-xr-x. 2 root root 150 Aug 24 17:30 bin
-rw-r--r--. 1 root root 93843 Aug 24 17:36 redis.conf
[root@sun75 redis6.2]#
编译包已经算是完整,修改配置文件测试
daemonize yes # 后台启动
bind 0.0.0.0 # 开启远程访问
requirepass 123456 # 设置密码
打包,在别的环境测试。
预编译nginx
类同
cd /usr/soft
mkdir nginx
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz
./configure --prefix=/usr/soft/nginx
make
make install
打包即可
Python预安装包制作的更多相关文章
- (转)python 模块安装包 制作
转自: http://testerhome.com/topics/539 用过python的同学对于python setup.py install肯定不会陌生.那么我们自己如果封装了很多的方法怎么很好 ...
- 安装包制作工具 SetupFactory使用1 详解
2014-11-19 Setup Factory 是一个强大的安装程序制作工具.提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序.可建立快捷方式,也可直接在 Windows ...
- [程序安装包制作] Advanced Installer 备忘
原文:[程序安装包制作] Advanced Installer 备忘 Product Information - Product Details 这个重点是Product Version.讲这个之前, ...
- 安装包制作工具 SetupFactory 详解
Setup Factory 是一个强大的安装程序制作工具.提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序.可建立快捷方式,也可直接在 Windows 系统的注册表加入内容 ...
- 使用Setup Factory安装包制作工具制作安装包
在我们开发完软件后,除了极个别案例我们把整个目录复制给客户用外,我们一般都需要做成安装包,方便整个软件的部署操作,以安装包的部署操作可能简单的是复制文件,也可能包括一些注册表.数据库等额外的操作,不过 ...
- 基于InstallShield2013LimitedEdition的安装包制作
在VS2012之前,我们做安装包一般都是使用VS自带的安装包制作工具来创建安装包的,VS2012.VS2013以后,微软把这个去掉,集成使用了InstallShield进行安装包的制作了,虽然思路差不 ...
- vs2017 rc 离线安装包制作
vs2017 rc 离线安装包制作 1.下载在线安装包:https://aka.ms/vs/15/release/vs_Enterprise.exe 2.制作离线安装包: vs_Enterprise. ...
- Mac OS平台下应用程序安装包制作工具Packages的使用介绍
一.介绍 Windows下面开发好的应用程序要进行分发时有很多打包工具可供选择,如Inno Setup, InstallShield, NSIS, Advanced Installer, Qt Ins ...
- Windows版的各种Python库安装包下载地址与安装过程
在用Python开发时(Windows环境),会碰到需要安装某个版本的第三方库,为了以后查找.安装方便,总结如下: windows版的各种Python库安装包下载地址:http://www.lfd.u ...
- Windows安装包制作指南——Advanced Installer的使用
1. 前言 最近需要制作windows的安装包,据说Advanced Installer比较强大,遂拿它来制作安装包.在网上少量资料以及官网简约文档中摸索前进,总算是制作出可用的安装包,在此记录,仅供 ...
随机推荐
- 神经网络之卷积篇:详解单层卷积网络(One layer of a convolutional network)
详解单层卷积网络 如何构建卷积神经网络的卷积层,下面来看个例子. 已经写了如何通过两个过滤器卷积处理一个三维图像,并输出两个不同的4×4矩阵.假设使用第一个过滤器进行卷积,得到第一个4×4矩阵.使用第 ...
- 处理一直显示npm WARN using –force Recommended protections disabled.的问题
使用 npm config set force false 可以消除.
- Managing Difficulties
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define FOR(i,n,m) for(int i=n;i<=m;i++) ...
- Linux基础优化与常用软件包说明
1.安装常用工具 1.1CentOS(7) 1.1.1 是否联网 ping qq.com 1.1.2 配置yum源(安装软件的软件仓库) 默认情况下yum下载软件的时候是从随机地址下载. 配置yum从 ...
- 2024年智能革命:HarmonyOS NEXT与盘古大模型5.0的颠覆性融合
引言 2024年,这一年注定在全球智能设备市场的历史上写下浓墨重彩的一笔.作为全球科技巨头,华为再次以其前瞻性的布局,推动了技术与应用的深度融合.在这个充满变革的时代,华为通过不断扩展的鸿蒙生态系统, ...
- C# JSON序列化指定名称
今天在做项目时遇到了要将json对象序列化为数据库表, 结果数据库表和json对象数据类型和字段名称对不上.于是就有了一下的解决方案: 需要转化的对象 { "orgAccountId&qu ...
- (零) React Native 项目开发拾遗
一位离职的前端同事,最近接了个 React Native 的活儿,遇到许多搞不定的问题,于是找到我帮忙"补课"(没有系统的学习 React Native,也不具备原生 Androi ...
- NFS挂载时出现mount
NFS挂载时出现"mount.nfs: access denied by server while mounting "的解决方法 1.使用了非法端口,也就是使用了大于1024的端 ...
- C++ std::shared_ptr自定义allocator引入内存池
当C++项目里做了大量的动态内存分配与释放,可能会导致内存碎片,使系统性能降低.当动态内存分配的开销变得不容忽视时,一种解决办法是一次从操作系统分配一块大的静态内存作为内存池进行手动管理,堆对象内存分 ...
- .net core8 使用JWT鉴权(附当前源码)
说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发). 该系统文章,我会尽量说的非常详细,做到不管新手.老手都能看懂. 说明:OverallAuth2 ...