可以把python安装从一台服务器复制到另一台服务器吗?

如果是完全一样的系统,答案是可以。

# 比如,把python3.6复制到另一台机器去。
tar -czvf py3.6.7.tar.gz /usr/local/bin/python3.6 /usr/local/bin/python3.6m /usr/local/bin/python3.6m-config /usr/local/bin/pip3.6 /usr/local/bin/pyvenv-3.6 /usr/local/bin/pydoc3.6 /usr/local/lib/python3.6

#在另一台服务器上:
tar -xzvf py3.6.7.tar.gz -C /

从源代码编译安装Python3.7到Centos6.4

从源代码安装的过程中遇到几个问题,以下是解决方案。

确认安装了libffi-dev

如果没有安装的话,最后会碰到ImportError: No module named ‘_ctypes’错误。

确认当前的的LANGUAGE和LANG环境变量是en_US.

如果遇到:Fatal Python error: initfsencoding: Unable to get the locale encodingLookupError: unknown encoding: xxx这样的错误。可能需要重置环境的LANG值。
printenv命令确定值。

export LANG=en_US
export LANGUAGE=en_US

如果碰到pip3的ssl模块没有安装

最大的可能是openssl不满足 python的最低要求。

找不到venv或者virtualenv?

执行python3.x -m venv –help 即可。

备份之前的准备工作

假设需要将源服务器S备份到目标服务器D,S和D需要满足哪些要求呢?为了减少对S服务器的干扰,尽量避免在S服务器上安装额外的软件。因此S服务器需要软件有:

D端通常拥有更多的自主权,建议安装的有:

  • ssh客户端,linux一般默认具备,win系统的话安装win32-openssh
  • ssh-agent,避免ssh交互手动输入phrase。
  • openssl,如果有加密内容和S服务器传递的话。
  • powershell,主要的备份代码由powershell编写。

配置文件的产生

产生关于S服务器的配置文件,D服务器对于S服务器知识全部来自于配置文件,配置文件有默认的模板,可以通过命令复制一个针对S的配置文件。

.\PasswordAssist.ps1 -Action CopyDemoConfigFile

此命令会提示你输入:

  • 关于备份什么内容,borg或者mysql
  • 服务器使用什么语言,python或者powershell
  • S服务器的IP或者主机名,该值会自动更新到配置文件中。

默认情况下,配置文件输出到当前目录的:

./myconfigs/ip地址/borg-config.json | mysql-config.json

配置文件的属性

简单介绍几个。

  • IdentityFile, D服务器的ssh private key文件路径
  • ServerPublicKeyFile,S服务器的public key文件,是D服务器上的路径,用来加密。比如mysql的密码用这个publickey加密,传送到S服务器之后,可由S服务器的privatekey来解密。
  • ServerPrivateKeyFile,S服务器的私钥的路径,是S服务器上的路径,用来解密。