---
title: 手动打包方式
description: "请根据以下指导打包源成分包，防止数据、配置、日志文件因在安装包外而丢失。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/portingadvisor/systemmigration/DevKit_Porting_0084.html
sourcePath: /source/zh/kunpengdevps/portingadvisor/systemmigration/DevKit_Porting_0084.html
indexId: e93c7084b7128c79fbb617442751fc4150e1322ddd963db579f38f58dcdeecf279
---
# 手动打包方式

请根据以下指导打包源成分包，防止数据、配置、日志文件因在安装包外而丢失。

- 仅支持源码编译的Nginx，且二进制在“Nginx安装路径/sbin”目录下。
- 当前不支持RPM包安装的Nginx自动迁移，如需迁移，请手动进行迁移。


#### 需要迁移的文件

- 源Nginx的安装目录（该目录下通常包括conf、html、logs、sbin）
- 编译Nginx时，编译参数指定的路径
- 启动Nginx的配置文件，包括nginx -c指定的配置文件
- 配置文件中引用的其他文件或目录、静态文件


#### 操作步骤

1. 在sbin目录下创建source_related目录，用于存放安装目录外依赖的静态文件、其他配置文件或目录。
  1 2 3 4 mkdir -p /home/nginx_mig_tmp cp -rp 源Nginx安装目录绝对路径 /home/nginx_mig_tmp cd /home/nginx_mig_tmp/源Nginx安装目录/sbin mkdir source_related

  以Nginx安装目录为“/opt/portadv/tools/nginx-install”为例，则源Nginx安装目录绝对路径为“/opt/portadv/tools/nginx-install”，源Nginx安装目录为nginx-install。

2. 查看编译选项指定的依赖文件，并按需将文件按照其原有目录结构拷贝至source_related目录下。
  若编译Nginx时仅指定了prefix路径，则可跳过此步骤。

  查看编译选项：

  1 2 cd 源Nginx安装目录/sbin ./nginx -V

  例如：若编译选项指定了--error-log-path=/var/log/nginx/error.log，执行如下命令进行拷贝，其他的编译选项同理。

  1 2 mkdir -p /home/nginx_mig_tmp/源Nginx安装目录/sbin/source_related/var/log/nginx cp -p /var/log/nginx/error.log /home/nginx_mig_tmp/源Nginx安装目录/sbin/source_related/var/log/nginx

3. 查看源Nginx的启动配置文件，并按原目录结构拷贝至source_related下。
  若待迁移的源Nginx二进制启动时未指定配置文件路径，可以跳过此步骤。

  1 ps -ef | grep nginx

  例如：若ps -ef的回显中，显示“nginx: master process {待迁移的源Nginx二进制} -c /home/nginx_confs/nginx.conf”，执行如下命令进行拷贝。

  1 2 mkdir -p /home/nginx_mig_tmp/源Nginx安装目录/sbin/source_related/home/nginx_confs cp -p /home/nginx_confs/nginx.conf /home/nginx_mig_tmp/源Nginx安装目录/sbin/source_related/home/nginx_confs

4. 查看源Nginx的启动配置文件中引用的依赖文件或目录，并按需将相关文件按照其原有目录结构拷贝至source_related目录下。
  若配置文件中没有使用include、ssl_certificate、ssl_certificate_key、ssl_dhparam、error_log、access_log、root、alias、client_body_temp_path、fastcgi_temp_path、proxy_temp_path、proxy_cache_path、scgi_temp_path、uwsgi_temp_path关键字，或引用的文件/目录都在源Nginx安装目录内，则可跳过此步骤。

  1 vi 源Nginx的启动配置文件

  例如：nginx.conf中，root关键字指定了引用的html目录路径为/root/nginx/html，执行如下命令进行拷贝，其他文件或目录同理。

  1 2 mkdir -p /home/nginx_mig_tmp/源Nginx安装目录/root/nginx cp -rp /root/nginx/html /home/nginx_mig_tmp/源Nginx安装目录/sbin/source_related/root/nginx

5. 删除source_related目录下，重复拷贝的Nginx安装路径。
  查看源Nginx安装目录是否存在：

  1 ll /home/nginx_mig_tmp/源Nginx安装目录/sbin/source_related/源Nginx安装目录绝对路径

  若存在，请删除：

  1 rm -rf /home/nginx_mig_tmp/源Nginx安装目录/sbin/source_related/源Nginx安装目录绝对路径

6. 将待扫描的源成分对应安装目录打包为压缩包，以tar.gz格式压缩包为例，压缩包名称请根据实际情况替换。

  a. 执行如下命令进行打包，以nginx.tar.gz为例。

```
tar cvf
nginx.tar.gz
/home/nginx_mig_tmp
```


  b. 可通过以下两种方式获取源成分。

    - 若使用“源成分包上传”方式，返回“添加成分信息”页签，单击“源成分包上传”后“上传”按钮，上传打包的源成分包。
    - 若使用“节点服务器获取”方式，请执行如下命令解压源成分压缩包。

      1. 使用SSH远程登录工具，将压缩包上传至“目标节点”的自定义路径。
      2. 进入保存压缩包文件的自定义目录。
        1 cd 自定义路径

      3. 解压源成分压缩包。

```
tar xvf
nginx.tar.gz
```


      4. 解压完成，可选择执行如下命令删除源成分压缩包。

```
rm -f
nginx.tar.gz
```


      5. 指定解压后的文件路径为“源成分所在路径”。
7. 打包完成后请手动删除创建的“/home/nginx_mig_tmp”目录。
