TIP : การใช้งาน Python3 บน Ubuntu 14 พร้อมทั้งอัพเดด sudo apt-get update ไม่ได้เพราะ OS ติด EOL

แชร์ความรู้ Linux Ubuntu Web Server บทความ การ config server Linux FreeBSD Apache
การติดตั้ง XAMPP Mysql PHP ใครต้องการแชร์ความรู้เรื่องต่างๆ เหล่านี้ให้ ท่านหรืออื่น โพสที่หมวดนี้ได้

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 47733
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

TIP : การใช้งาน Python3 บน Ubuntu 14 พร้อมทั้งอัพเดด sudo apt-get update ไม่ได้เพราะ OS ติด EOL

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

TIP : TIP : การใช้งาน Python3 บน Ubuntu 14 พร้อมทั้งอัพเดด sudo apt-get update ไม่ได้เพราะ OS ติด EOL
อย่างที่รู้กันว่า Ubuntu 14 ที่เป็น EOL ไปแล้ว หมดอายุการสนับสนุน และมีข้อจำกัดหลายอย่าง รวมถึงการเข้าถึง repository และ การติดตั้งแพ็กเกจใหม่ รวมถึงทำให้รัน python3 ได้ด้วย เพราะ Ubuntu 14 มี python เวอร์ชั่นหลักคือ python 2
python-ubuntu14_- visual selection.png
python-ubuntu14_- visual selection.png (18.97 KiB) Viewed 1110 times
หลักการคือ เปลี่ยน respo ใหม่ เพราะ respo เพิ่มหมดอายุ
และ ติดตั้ง openssl ใหม่เพราะ เวอร์ชั่นเกิม 1.0.x จะไม่รองรับ ssl 1.2
และ ติดตั้ง python3 เป็น python รอง เพราะ ubuntu จะใช้ python 2 เป็นหลัก
และ pip3 มาใช้กับ python3 และ pip ปกติซึ่งจะใช้กับ python2
และ สำหรับรันโปรเจ็ค python เมื่อมีหลายเวอร์ชั่น แนะนำให้รัน ใน env ของเวอร์ชั่นใครเวอร์ชั่นมัน กับโปรเจ็คนั้น

ไว้จะเอา command line แบบละเอียดตามให้ ตั้งแต่ ขั้นตอนการ อัพเกรด lib ของ Ubuntu 14 ให้ใหม่สุดของแต่ละ lib
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 47733
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: TIP : การใช้งาน Python3 บน Ubuntu 14

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ขั้นตอนการติดตั้ง Python 3 และแก้ปัญหา SSL พร้อมติดตั้งโมดูลด้วย pip3 เพื่อรันแอปบน Virtual Environment (venv) สำหรับ Ubuntu 14.04


1. แก้ไขแหล่งที่เก็บแพ็กเกจและอัปเดต apt

1.1 เปิดไฟล์ sources.list

โค้ด: เลือกทั้งหมด

sudo nano /etc/apt/sources.list
1.2 แก้ไขเนื้อหาเป็น:

โค้ด: เลือกทั้งหมด

deb http://mirror.archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb http://mirror.archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse
deb http://mirror.archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
deb http://mirror.archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse
1.3 บันทึกไฟล์แล้วออกจากโปรแกรม (Ctrl + X → Y → Enter)

1.4 อัปเดตแพ็กเกจ:

โค้ด: เลือกทั้งหมด

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential checkinstall
2. ติดตั้ง OpenSSL เวอร์ชันใหม่
2.1 ติดตั้ง dependencies:

โค้ด: เลือกทั้งหมด

sudo apt-get install zlib1g-dev libffi-dev libssl-dev libbz2-dev \
libreadline-dev libsqlite3-dev libncursesw5-dev tk-dev \
libgdbm-dev libc6-dev liblzma-dev uuid-dev
2.2 ดาวน์โหลดและคอมไพล์ OpenSSL:

โค้ด: เลือกทั้งหมด

cd /usr/local/src
sudo wget https://www.openssl.org/source/openssl-1.1.1w.tar.gz
sudo tar -xvzf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
sudo ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
sudo make -j$(nproc)
sudo make install
2.3 สร้าง symbolic links:

โค้ด: เลือกทั้งหมด

sudo mv /usr/bin/openssl /usr/bin/openssl.bak
sudo ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
sudo ldconfig -v
2.4 ตรวจสอบเวอร์ชัน:

โค้ด: เลือกทั้งหมด

openssl version
ผลลัพธ์ที่คาดหวัง:

โค้ด: เลือกทั้งหมด

OpenSSL 1.1.1w  11 Sep 2023

3. ติดตั้ง Python 3.9 พร้อมรองรับ SSL
3.1 ดาวน์โหลดและคอมไพล์ Python 3.9:

โค้ด: เลือกทั้งหมด

cd /usr/src
sudo wget https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgz
sudo tar xvf Python-3.9.18.tgz
cd Python-3.9.18
sudo ./configure --enable-optimizations --with-openssl=/usr/local/ssl --with-openssl-rpath=auto
sudo make -j$(nproc)
sudo make altinstall
3.2 ตรวจสอบเวอร์ชัน Python และ SSL:

โค้ด: เลือกทั้งหมด

python3.9 --version
python3.9 -c "import ssl; print(ssl.OPENSSL_VERSION)"

4. ติดตั้ง pip3 และโมดูล Python ที่จำเป็น
4.1 ติดตั้ง pip3:

โค้ด: เลือกทั้งหมด

python3.9 -m ensurepip --upgrade
python3.9 -m pip install --upgrade pip
4.2 ติดตั้ง dependencies:

โค้ด: เลือกทั้งหมด

python3.9 -m pip install virtualenv flask flask-socketio gevent gevent-websocket greenlet
4.3 ติดตั้ง virtualenv

โค้ด: เลือกทั้งหมด

pip3 install virtualenv
5. สร้าง Virtual Environment และติดตั้ง dependencies สำหรับแอป
5.1 สร้าง Virtual Environment:

โค้ด: เลือกทั้งหมด

python3.9 -m venv venv
5.2 เปิดใช้งาน Virtual Environment:

โค้ด: เลือกทั้งหมด

source venv/bin/activate
5.3 ติดตั้ง dependencies ใน venv:

โค้ด: เลือกทั้งหมด

pip3 install -r requirements.txt
หรือ:

โค้ด: เลือกทั้งหมด

pip3 install flask flask-socketio gevent gevent-websocket greenlet

6. รันแอปพลิเคชัน (app.py)
6.1 เปิดใช้งาน Virtual Environment:

โค้ด: เลือกทั้งหมด

source venv/bin/activate
6.2 รันแอปพลิเคชัน:

โค้ด: เลือกทั้งหมด

python3 app.py
กรณี app.py การการเขียนทำงานกับ socket แล้วเจอปัญหา
7. แก้ไขปัญหา async_mode (ถ้าจำเป็น)
หากมีปัญหาเกี่ยวกับ async_mode:
แก้ไขโค้ดใน app.py:

โค้ด: เลือกทั้งหมด

socketio = SocketIO(app)  # ปล่อยให้เลือกโหมด async อัตโนมัติ
หรือติดตั้ง eventlet เพิ่มเติม:

โค้ด: เลือกทั้งหมด

pip3 install eventlet

8. ตรวจสอบการตั้งค่าทั้งหมด

8.1 ตรวจสอบ OpenSSL:

โค้ด: เลือกทั้งหมด

openssl version
8.2 ตรวจสอบ Python SSL Module:

โค้ด: เลือกทั้งหมด

python3.9 -c "import ssl; print(ssl.OPENSSL_VERSION)"
8.3 ตรวจสอบโมดูลใน venv:

โค้ด: เลือกทั้งหมด

pip3 freeze

สรุปขั้นตอนทั้งหมด:
  1. อัปเดต apt และแก้ไขแหล่งที่เก็บให้ชี้ไปที่ http://mirror.archive.ubuntu.com/ubuntu
  2. ติดตั้ง OpenSSL 1.1.1 ใหม่และตั้งค่า symbolic links
  3. คอมไพล์ Python 3.9 ใหม่พร้อมรองรับ OpenSSL
  4. ติดตั้ง pip3 และ dependencies ใน Virtual Environment
  5. เปิดใช้งาน Virtual Environment แล้วรันแอปด้วย Python 3.9
หากมีคำถามเพิ่มเติมหรือพบปัญหา สามารถตอบในกระทู้นี้มาได้เลยครับ!
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 47733
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: TIP : การใช้งาน Python3 บน Ubuntu 14 พร้อมทั้งอัพเดด sudo apt-get update ไม่ได้เพราะ OS ติด EOL

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

สำหรับใน ข้อ 1 ที่มีปัญหากันบ่อยๆ ถ้าใครเจอปัยหาประมาณนี้
Ign http://mirror.archive.ubuntu.com trusty/multiverse Translation-en_US
Ign http://mirror.archive.ubuntu.com trusty/restricted Translation-en_US
Ign http://mirror.archive.ubuntu.com trusty/universe Translation-en_US
W: Failed to fetch https://repos.insights.digitalocean.com ... 4/Packages Bad header line

W: Failed to fetch https://repos.insights.digitalocean.com ... 6/Packages Bad header line
ให้เครียร์ cache ของ repo
วิธีแก้ปัญหา
1. ลบแหล่งที่มาของ PPA ที่ใช้งานไม่ได้
ตรวจสอบไฟล์ที่เกี่ยวข้องกับ PPA:

โค้ด: เลือกทั้งหมด

ls /etc/apt/sources.list.d/
ผลลัพธ์จะแสดงไฟล์ .list ที่เกี่ยวข้องกับ PPA เช่น:
fkrull-deadsnakes-python2.7-trusty.list
fkrull-deadsnakes-trusty.list
ลบไฟล์ที่เกี่ยวข้องกับ PPA:

โค้ด: เลือกทั้งหมด

sudo rm /etc/apt/sources.list.d/fkrull-deadsnakes-python2.7-trusty.list
sudo rm /etc/apt/sources.list.d/fkrull-deadsnakes-trusty.list
ลบแคชไฟล์ทั้งหมด:

โค้ด: เลือกทั้งหมด

sudo rm -rf /var/lib/apt/lists/*
sudo apt clean
อัปเดตแคชแพ็กเกจใหม่อีกครั้ง

โค้ด: เลือกทั้งหมด

sudo apt update
sudo apt upgrade
แล้วกลับไปทำข้อ 2 ใหม่อีกครั้ง
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 15