# 1.0.1升级至2.X.X/5.X.X版本

升级至2.X.X版本与升级至5.X.X版本步骤一致，本文以升级至2.X.X版本为例。

在升级之前，请务必备份好ohpm-repo 私仓工具中的历史数据，避免因升级操作失误，导致数据丢失。备份的内容包括ohpm-repo中部署根目录内的数据、db元数据以及store三方包数据，详细可参考数据备份。

1.  旧版本服务停止：如果旧版本的服务还在运行，升级版本前请停止，进入1.0.1版本ohpm-repo私仓工具包解压目录下的bin目录，执行stop。
    
    ```
    ohpm-repo stop
    ```
    
    若您想在其他目录使用ohpm-repo，请将对应版本ohpm-repo工具包解压目录中bin目录的路径配置到系统环境变量path中。
    

2.  下载并解压工具包：下载版本2.X.X的ohpm-repo私仓工具包，并解压（请解压到一个空文件夹中）。
    

3.  安装完成之后，进入ohpm-repo 私仓工具包解压目录下的bin目录，执行如下命令：
    
    ```
    ohpm-repo -v
    ```
    
    终端输出版本号2.X.X，则表示解压成功。
    

4.  移植配置文件信息：版本2.X.X的配置文件与版本1.0.1相比有较大差异，需要提取旧版本配置文件信息至新版本配置文件中，移植的具体内容如下：
    
    *   如果ohpm-repo版本1.0.1使用的配置文件，配置项均为默认项，则无需移植配置文件信息，直接执行下一步启动操作。
    *   旧版本1.0.1配置文件路径为：\`<deploy\_root>/conf/config.yaml\`；新版本2.X.X配置文件路径为：<2.X.X版本ohpm-repo解压目录>/conf/config.yaml。
    *   <deploy\_root>：ohpm-repo部署根目录
        1.  windows系统: ~/AppData/Roaming/Huawei/ohpm-repo
        2.  其他操作系统：~/ohpm-repo
    
    *   **listen**：旧版本listen值拷贝替换到新版本listen中。如果旧版本是在执行start时指定的listen值，需要把对应的listen值填入新版本配置文件中，新版本中listen值不支持命令行指定。
    *   **https**：如果listen配置的协议是https，需要拷贝https的值：旧版本https.key和https.cert路径信息对应拷贝替换到新版本https\_key和https\_cert中。
        
        ```
        # 旧版本 `1.0.1`
        https:
          key: ./ssl/server.key     
          cert: ./ssl/server.crt
        
        # 新版本 `2.X.X`
        https_key: ./ssl/server.key       
        https_cert: ./ssl/server.crt
        ```
        
    *   **server**： 旧版本server有八个参数信息，对应拷贝到新版本server numeric limit section模块下，拷贝替换对应数字。
        
        *   版本1.1.0开始，新增参数api\_timeout。
        *   版本升级时，参数信息会有变化，具体信息可在<解压目录>/conf/config.yaml文件中获取。
        
        ```
        # 旧版本 `1.0.1`
        server:
          max_package_size: 10
          max_extract_size: 50
          max_extract_file_num: 10240
          user_rate_limit: 100
          fetch_timeout: 60
          keep_alive_timeout: 60
          upload_lock_hour: 24
          upload_max_times: 100     
        
        # 新版本 `2.X.X`
        max_package_size: 10
        max_extract_size: 50
        max_extract_file_num: 10240
        user_rate_limit: 100
        fetch_timeout: 60
        keep_alive_timeout: 60
        api_timeout: 60
        upload_lock_hour: 24
        upload_max_times: 100
        ```
        
    *   **db**：旧版本仅支持本地filedb存储，不支持mysql，故使用新版本db.type为filedb的模板，拷贝替换旧版本db.plugin\_config.path路径信息至新版本db.config.path中。
        
        ```
        # 旧版本 `1.0.1`
        db:
          plugin_name: ohpm-repo-plugin-filedb
          plugin_config:
            path: ./db  
        
        # 新版本 `2.X.X`
        db:
          type: filedb
          config:
            path: ./db
        ```
        
    *   **store**：旧版本仅支持本地storage存储，不支持sftp，故使用新版本store.type为fs的模板，拷贝替换旧版本store.plugin\_config.path路径信息和store.plugin\_config.server值至新版本对应的store.config.path和 store.config.server中。
        
        在ohpm-repo 2.0.0版本中，listen的默认值已更改为listen: 0.0.0.0:8088，如果listen的host配置为0.0.0.0，则字段store.config.server不可省略**，必须**配置为详细地址，例如_
        
        ```
        # 旧版本 `1.0.1`
        store:
          plugin_name: ohpm-repo-plugin-fs
          plugin_config:
            path: ./storage
            #server: 
        
        # 新版本 `2.X.X`
        store:
          type: fs
          config:
            path: ./storage
            #server: 
        ```
        
    *   **uplink**：拷贝旧版本uplink.store\_path路径信息和uplink.cache\_time缓存时间信息至新版本对应的uplink\_store\_path和uplink\_cache\_time中
        
        ```
        # 旧版本 `1.0.1`
        uplink:
          store_path: ./uplink
          cache_time: 168
          
        # 新版本 `2.X.X`
        uplink_store_path: ./uplink
        uplink_cache_time: 168
        ```
        
5.  （可选项）新版本如果需要使用新的部署目录<new\_deploy\_root>，需要手动迁移数据。
    
    *   解压与替换配置信息：按照步骤1-4，解压和拷贝替换配置文件信息。
    *   建立新部署目录：判断指定的新部署目录<new\_deploy\_root>是否存在，不存在则新建，新部署目录需存在且为空。
    *   拷贝数据文件：拷贝旧版本部署目录下的全部文件至新部署目录<new\_deploy\_root>中。
    *   修改新版本ohpm-repo配置文件：打开新版本ohpm-repo 2.0.0的解压目录，进入conf目录下，修改新配置文件config.yaml，修改配置项deploy\_root为新的部署目录<new\_deploy\_root>。
    
    在使用新部署目录时，旧版本部署目录中meta文件一定要迁移到新版本部署目录中，否则使用meta加密组件加密的数据无法被正确解密。
    
6.  新版本服务启动：正确拷贝替换配置文件信息后，进入ohpm-repo私仓工具包解压目录下的bin目录，执行下面语句启动新版本服务：
    *   执行安装命令：
        
        ```
        ohpm-repo install
        ```
        
        结果示例：
        
    *   刷新环境变量：安装成功后，必须根据给出的提示信息刷新环境变量，针对Windows系统和Linux/Mac系统，有不同处理方式：
        
        *   Windows系统： 关闭当前窗口，重新开启一个窗口
            
        *   Linux系统或Mac系统：在命令行中执行刷新命令：_source ~/.bashrc_或者. _~/.bashrc_。
            
        
    *   执行启动start命令：
        
        ```
        ohpm-repo start
        ```
        
        结果示例：
        
        版本升级之前，如果浏览器中已访问ohpm-repo页面，版本升级之后请刷新ohpm-repo页面。