Stories

Detail Return Return

tornado 4.2.1 移植指南(openEuler 20.03 LTS SP1) - Stories Detail

介紹

簡要介紹

Tornado是一個Python Web框架和異步網絡庫,最初由FriendFeed開發。 通過使用非阻塞網絡I / O,Tornado可以擴展到成千上萬的開放連接,非常適合長時間輪詢,WebSocket和需要與每個用户建立長期連接的其他應用程序。
本案例使用x86_64架構虛擬機,通過評估工具x2openEuler評估tornado 4.2.1軟件移植到openEuler操作系統的兼容性,並根據評估結果完成軟件移植。

語言:C++/Python

一句話描述:一個Python Web框架和異步網絡庫

開源協議:Apache

建議的版本

建議使用版本為tornado 4.2.1。

説明:
本文檔適用於tornado 4.2.1,其他版本的tornado移植步驟也可參考本文檔。

環境要求

操作系統要求

操作系統 版本
openEuler 20.03 LTS SP1
CentOS 7.6

安裝操作系統

如果是全新安裝操作系統,安裝方式建議不要使用最小化安裝,否則很多軟件包需要手動安裝,可選擇“Server with GUI”安裝方式。
安裝openEuler操作系統請參考:https://openeuler.org/zh/docs/20.03_LTS_SP1/docs/Installation/installation.html。

兼容性評估

獲取tornado的RPM包

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-tornado-4.2.1-5.el7.x86_64.rpm
下載x2openEuler工具
下載指引:https://www.openeuler.org/zh/other/migration/
部署工具
rpm -ivh x2openEuler-2.0.0-1.x86_64.rpm
注意:安裝rpm時需要使用root用户,且目前需要網絡(用於下載安裝依賴)
注意:根據提示安裝依賴包如bzip2-devel等
su x2openEuler
x2openEuler redis-db -init
依次錄入redis數據庫的ip:127.0.0.1
端口:6379
數據庫索引號(0-16):0
密碼(工具會對密碼加密處理):如果redis密碼沒有設置或者為空時,直接回車即可
x2openEuler init source_centos7.6-openEuler20.03-LTS-SP1.tar.gz
備註:x2openEuler使用rpm安裝完成後會在/opt/x2openEuler目錄下帶有source_centos7.6-openEuler20.03-LTS-SP1.tar.gz這個默認資源包
需要支持centos8.2到openEuler20.03-LTS-SP1的評估,則需獲取對應的靜態資源包導入,如對應的資源包為source_centos8.2-openEuler20.03-LTS-SP1.tar.gz,導入此包命令:x2openEuler init source_centos8.2-openEuler20.03-LTS-SP1.tar.gz,請示情況選擇對應的資源包
掃描軟件
x2openEuler scan python-tornado-4.2.1-5.el7.x86_64.rpm
注意要分析的移植文件需要有能夠讓x2openEuler用户可以讀取的權限
掃描完成後會在/opt/x2openEuler/output目錄生成html格式的報告

查看評估結果

軟件兼容性評估報告分三塊內容展示軟件兼容性,分別是依賴包兼容性、C/C++接口兼容性、java接口兼容性,依賴包兼容性反映了軟件包安裝過程中的直接依賴,非100%表明無法正確安裝;接口兼容性反映的是單個軟件運行過程中對其他軟件包、動態庫或系統接口的調用變化,非100%表明在某個功能調用時可能會觸發異常,未調用到時可能表現正常;部分結果建議人工複核,最終軟件包使用建優先級建議 openEuler已移植包>openEuler上人工重編譯包>centos軟件包。

結果:通過報告可知外部接口兼容性100%,依賴包兼容性人工複核後通過,經評估tornado4.2.1軟件包在openEuler 20.03 LTS SP1系統上兼容,可安裝此軟件包至openEuler 20.03 LTS SP1系統進行驗證。

安裝tornado

rpm安裝

由於兼容性報告顯示兼容,嘗試直接用下載的rpm包安裝。

[root@localhost ~]# yum install python-tornado-4.2.1-5.el7.x86_64.rpm -y
Last metadata expiration check: 0:11:53 ago on Mon 22 Mar 2021 01:25:06 PM CST.
Dependencies resolved.
================================================================================
 Package                              Arch   Version         Repository    Size
================================================================================
Installing:
 python-tornado                       x86_64 4.2.1-5.el7     @commandline 641 k
Installing dependencies:
 python2-backports                    x86_64 1.0-17.oe1      everything   9.2 k
 python2-backports-ssl_match_hostname noarch 3.7.0.1-2.oe1   everything    16 k
 python2-ipaddress                    noarch 1.0.23-1.oe1    everything    41 k
 python3-pycurl                       x86_64 7.43.0.3-1.oe1  OS            65 k

Transaction Summary
================================================================================
Install  5 Packages

Total size: 772 k
Total download size: 131 k
Installed size: 4.1 M
Downloading Packages:
(1/4): python2-backports-1.0-17.oe1.x86_64.rpm   53 kB/s | 9.2 kB     00:00
(2/4): python2-backports-ssl_match_hostname-3.7  63 kB/s |  16 kB     00:00
(3/4): python2-ipaddress-1.0.23-1.oe1.noarch.rp 126 kB/s |  41 kB     00:00
(4/4): python3-pycurl-7.43.0.3-1.oe1.x86_64.rpm 113 kB/s |  65 kB     00:00
--------------------------------------------------------------------------------
Total                                           226 kB/s | 131 kB     00:00
warning: /var/cache/dnf/OS-fcb43ce6e8cef091/packages/python3-pycurl-7.43.0.3-1.oe1.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID b25e7f66: NOKEY
OS                                               14 kB/s | 2.1 kB     00:00
Importing GPG key 0xB25E7F66:
 Userid     : "private OBS (key without passphrase) <defaultkey@localobs>"
 Fingerprint: 12EA 74AC 9DF4 8D46 C69C A0BE D557 065E B25E 7F66
 From       : http://repo.openeuler.org/openEuler-20.03-LTS-SP1/OS/x86_64/RPM-GPG-KEY-openEuler
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : python2-ipaddress-1.0.23-1.oe1.noarch                  1/5
  Installing       : python2-backports-1.0-17.oe1.x86_64                    2/5
  Installing       : python2-backports-ssl_match_hostname-3.7.0.1-2.oe1.n   3/5
  Installing       : python3-pycurl-7.43.0.3-1.oe1.x86_64                   4/5
  Installing       : python-tornado-4.2.1-5.el7.x86_64                      5/5
  Running scriptlet: python-tornado-4.2.1-5.el7.x86_64                      5/5
  Verifying        : python3-pycurl-7.43.0.3-1.oe1.x86_64                   1/5
  Verifying        : python2-backports-1.0-17.oe1.x86_64                    2/5
  Verifying        : python2-backports-ssl_match_hostname-3.7.0.1-2.oe1.n   3/5
  Verifying        : python2-ipaddress-1.0.23-1.oe1.noarch                  4/5
  Verifying        : python-tornado-4.2.1-5.el7.x86_64                      5/5
Installed:
  python-tornado-4.2.1-5.el7.x86_64
  python2-backports-1.0-17.oe1.x86_64
  python2-backports-ssl_match_hostname-3.7.0.1-2.oe1.noarch
  python2-ipaddress-1.0.23-1.oe1.noarch
  python3-pycurl-7.43.0.3-1.oe1.x86_64

Complete!

安裝成功。

運行和驗證

檢查版本

[root@localhost ~]# python
Python 2.7.18 (default, Dec  8 2020, 03:37:36)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tornado
>>> tornado.version
'4.2.1'

使用tornado

編寫一個handlers來響應一個標準的http請求。(代碼來自tornado官網https://www.tornadoweb.org/en/stable/)

vim hello.py

編輯內容如下:

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

def make_app():
    return tornado.web.Application([
        (r"/", MainHandler),
    ])

if __name__ == "__main__":
    app = make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()

編輯後保存退出,在終端輸入如下命令:

python hello.py

打開另外一個終端,輸入如下命令。

curl http://localhost:8888

系統回顯如下,則表示安裝成功。

Hello, world

相關鏈接:

  1. openEuler官網:www.openeuler.org/
  2. OS遷移專區: https://www.openeuler.org/zh/...
  3. openEuler兼容性列表:https://www.openeuler.org/zh/...
  4. openEuler遷移指南:https://www.openeuler.org/zh/...
user avatar hppyvyv6 Avatar Rocokingdom2024 Avatar databend Avatar hashdata Avatar PeaZomboss Avatar henjay724 Avatar zhongtang Avatar juezhong Avatar ahdung Avatar ayuan01 Avatar huaweichenai Avatar zdyz Avatar
Favorites 31 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.