Padahal pip3 adalah salah satu penyedia package terbanyak yang bisa kita gunakan untuk produktifitas kita dalam pemrograman python. banyak package library yang sangat berguna, seperti contohnya requests, docker, flask dan lain sebagainya
Untuk kasus ini yang perlu kita lakukan adalah
Uninstall pip bawaan dari Ubuntu 16.04, dengan cara $ sudo apt remove python3-pip
Dapatkan installer pip terbaru di pypa.io dengan cara $ sudo curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
Jalankan file get-pip.py tersebut dengan cara $ sudo python3 get-pip.py
Setelah selesai, maka pip akan terinstall, kita cek dengan cara $ pip -V pip 20.1.1 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)
Agar lebih nyaman, perlu kita letakkan pip tersebut di /usr/bin, dengan cara $ cd /usr/bin $ ln -s /usr/local/bin/pip3.8 pip $ ln -s /usr/local/bin/pip3.8 pip3
Pada saat ini pip sudah seharusnya menggunakan yang terbaru (versi 20, pada saat tulisan ini dibuat)
Salah satu cara untuk mengamankan komunikasi adalah dengan menggunakan asymetric encryption. asymetric encryption merupakan mekanisme dengan menggunakan 2 kunci yang berbeda. sebut saja K1 dan K2
Dalam asymetric encryption, berlaku hal seperti ini. message yang di encrypt dengan K1 hanya bisa di decrypt (dibuka) oleh K2. dan juga sebaliknya, semua message yang diencrypt dengan K2 hanya bisa dibuka oleh K1.
Dalam prakteknya biasanya kita akan mengenal istilah public key dan private key. K1 adalah public key dan K2 adalah private key. public key bebas diketahui umum, sedangkan private key harus bersifat rahasia. mekanisme ini biasanya digunakan dengan harapan semua message yang diencrypt dengan public key , HANYA BISA dibuka oleh pemilik key tersebut (dengan private key). sehingga bisa dipastikan bahwa komunikasi berjalan privat. dan kalaupun jatuh ke tangan user lain / aplikasi lain secara tidak sengaja , maka yang bukan pemilik key tidak akan bisa mengetahui isinya (karena tidak memiliki private key)
Salah satu pengunaannya adalah dalam komunikasi email. terkadang dalam email ataupun komunikasi yang lain, email akan diforward ke orang yang tidak dimaksudkan untuk membaca. dengan penggunaan enkripsi akan membuat pengirim yakin bahwa pesan tersebut hanya bisa dibuka oleh yang dituju. Salah satu prakteknya adalah menggunakan PGP key untuk mengirimkan dan menerima message.
Membuat Key
Berikut ini adalah cara untuk create PGP key. Untuk membuat kombinasi private key dan public key
gpg --full-generate-key
akan menghasilkan 2 jenis key yaitu private dan public untuk melihat fingerprint (id) dari public key, gunakan
Melihat daftar key
gpg --list-keys
akan memunculkan semua key beserta fingerprintnya
Mengekspor public key untuk mengekspor public key dalam bentuk file teks (ascii). gunakan
gpg --armor --export
gunakan public key ini untuk keperluan umum. seperti ID yang merepresentasikan indiviual yang nantinya dapat diupload ke key server publik, sehingga bisa dicari secara online
Mengekspor private key untuk mengekspor private key key dalam bentuk file teks (ascii). gunakan
gpg --armor --export-secret-keys
private key ini nantinya akan digunakan untuk mengenkrip ataupun mendekrip
Pada saat kita belajar menggunakan HTML untuk membuat website, terkadang kita tidak bisa langsung membuat file .html, meletakkannya di file system, kemudian mengisinya dengan kode HTML dan berikutnya menggunakan fasilitas file->open di browser untuk melihat hasilnya.
Pada saat berada di lingkungan production, ketika browser berada di tempat yang berbeda dengan object HTTP, tentu saja browser tidak bisa menggunakan cara yang sama ketika kita meletakkan object di file system
Oleh karena itu, kita memerlukan sebuah lingkungan development yang paling tidak mirip dengan lingkungan production, yaitu adanya http server atau yang lazim disebut dengan web server
Beberapa menilai bahwa instalasi web server membutuhkan waktu dan pengetahuan khusus. Hal itu memang benar adanya, jika digunakan untuk lingkungan production yang tujuannya untuk melayani request dalam jumlah yang besar. akan tetapi untuk development, kita bisa memanfaatkan web server yang tinggal pakai seperti yang dimiliki oleh bahasa python.
Hal ini akan sangat berguna misalkan kita menjumpai sepotong kode html dan kita ingin mencobanya, maka kita bisa langsung gunakan dan melihat hasilnya seperti ketika kita gunakan lingkungan production
python memiliki modul yang bernama http.server yang siap digunakan kapan saja, bahkan ketika kita tidak paham python pun kita dapat menggunakannya
Dalam contoh ini, saya menggunakan linux sebagai lingkungan development saya untuk membuat sebuah halaman .html
Sebagai contoh, saya mempunyai halaman html, dengan nama file index.html seperti berikut ini
<DOCTYPE html> <BODY> <h1> Hello </h1> Hello, saya belajar HTML code disini </BODY>
setelah itu buatlah sebuah direktori/folder , saya akan gunakan home directory saya untuk keperluan ini, nantinya lingkungan development adalah di directory belajar_html
$ mkdir belajar_html $ cd belajar_html
kita cek directory dimana kita berada
$ pwd /home/royyana/belajar_html
saat ini kita sudah berada di dalam directory belajar_html, copykan file index.html ke dalam directory ini. setelah index.html berada di directory ini, maka struktur nya akan seperti ini
$ tree . └── index.html
kita lihat hanya satu file index.html
Berikutnya kita jalankan webserver dengan satu command line saja, yaitu
$ python3 -m http.server
akan memunculkan bahwa kita sudah menjalankan http server di port 8000
$ python3 -m http.server Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) …
port 8000 merupakan port default yang bisa kita ganti dengan port berapapun yang kita inginkan. saran saya gunakan port diatas 1024. misalkan, kita gunakan port 8899, caranya adalah
$ python3 -m http.server 8899 Serving HTTP on 0.0.0.0 port 8899 (http://0.0.0.0:8899/) …
pada saat ini webserver sudah siap menerima request dari browser. dalam hal ini kita akan menggunakan browser chrome untuk mengakses halaman index.html yang berada di server di port 8899
akseslah url http://localhost:8899/index.html dengan browser chrome, kita lihat di sisi server akan memperlihatkan rekaman akses dari browser
Pada suatu ketika, saya ingin menggunakan python versi 3.5 keatas dalam sebuah ubuntu. ketika saya masuk ke console, saya menjumpai bahwa ubuntu ini adalah ubuntu 16.04 yang mana versi builtin python3 nya adalah 3.5. Beberapa kasus mengharuskan kita untuk menggunakan python 3.5 keatas.
cek versi python3 yang sedang berjalan
~/o365_gw# python3 -V Python 3.5.2
Mengupgrade Python
untuk mengupgrade ke versi python setelah 3.5 perlu kita lakukan beberapa instalasi pendahuluan. tujuan kita adalah menginstall python versi 3.8
dan kita akan menggunakan metode ppa dari deadsnakes
$ sudo add-apt-repository ppa:deadsnakes/ppa
setelah itu akan muncul beberapa informasi pendahuluan tentang Ubuntu dan versi python yang disupport. pada saat tulisan ini dibuat, terakhir yang bisa disupport adalah python 3.9 untuk ubuntu 16.04
Note: Python2.7 (all), Python 3.5 (xenial), Python 3.6 (bionic), Python 3.8 (focal) are not provided by deadsnakes as upstream ubuntu p rovides those packages.
Note: for focal, older python versions require libssl1.0.x so they are not currently built
Setelah selesai, maka kita lanjutkan menginstall python 3.9
$ sudo apt install python-3.8
mari kita cek versi dari python3.8 yang sudah terinstall
$ python3.8 -V
pada saat ini, binary python3 masih mengarah ke python versi 3.5 yang lama. untuk memastikan
Setelah menjalankan ini, kita cek binary /usr/bin/python3 apakah sudah mengarah ke python 3.8 atau belum
$ python3 -V Python 3.8.3
atau jalankan langsung python REPL
$ python3 Python 3.8.3 (default, May 14 2020, 22:09:32) [GCC 5.4.0 20160609] on linux
Pada saat ini python 3 yang kita gunakan sudah menggunakan python3.8.
Kesimpulan
Tulisan ini telah membahas bagaimana cara mengupgrade versi python di ubuntu 16.04 yang menggunakan versi default 3.5 menjadi versi 3.8 dengan menggunakan metode PPA