Bismillahirahmanirahim.
Aku tulis sikit nota untuk diri sendiri dan juga untuk orang lain yang berminat nok blajor cara-cara dan proses installasi OS Linux untuk kegunaan pembangunan sistem ( particularly PHP , mysql dan Laravel ) . aku pakai Alpine Linux.
Tutorial ini ditulis dalam Bahasa Tranung.
This tutorial written in Malay Language (Terengganu Accent).
Level : Intermediate with basic vi editor knowladge
Dulu, aku guna full blown OS Linux untuk buat pembangunan sistem seperti Debian dan Manjaro atas mesin yang sama berkongsi dengan Windows. Kemudian, aku guna full OS Linux Debian dan Linux MX ( debian base ) atas VirtualBox dan ada juga setup Debian atas WSL2.
Dengan adanya Virtualbox/WSL2, mudoh untuk setup sistem berdasarkan php version, termasuklah php hok lama-lama. Alternatif lain adalah dengan menggunakan docker, boleh tukor-tukor php version, memandangkan ram pc aku dok besor mana, jadi docker dok sesuai untuk aku.
Untuk setup Alpine Linux, target aku adalah untuk menggunakan ram yang minimum sebab pc aku miskin ram. Ni setak untuk development sistem je. bukang untuk main game atau tengok movie.
Dalam alpine linux ni aku akan setup i3wm , lightdm, neovim, shell fish
1. Download Alpine
Gi ke laman Alpine Download, amik hok virtual. x86_64 , mung nok amik hok standard pun boleh, tapi penggunaan ram dia dok sama lah, sebab hok virtual tu dia doh ubahsuai kernel bersesuaian untuk kegunaan virtual sahaja.
2. Setup Permulaan
Dalam virtualbox, create new machine, set 1GB ram, 15Gb hdd.
Ingatan: Kalau nok molek, pastikan mung reserve 5GB pada hdd, contoh katakan mung nok set 20GB hdd untuk sistem mung, mung tamboh 5GB lagi, jadikan 25GB. Sebab alpine akan buat swap file dalam 2gb hingga 4 gb secara auto ikut jumlah ram yang diset . boleh baca sini
rujuk sini, untuk tutorial bergambar.
3. Setup Alpine
Bila doh boot dalam virtualbox, masukkan username root dan tekan enter
#setup-alpine ( tekan enter )
Setup Keyboard (tulis us enter pah tu taip us skali lagi
)
Set Hostname (localhost atau local atau alpine atau nama mung)
Set up Network Connection (eth0)
Set ip address ( dhcp )
Any Manual network configuration ? ( no )
Setting up Root Password ( ikut panda mung lah)
Set the Time Zone (Asia/Kuala_Lumpur)
Set proxy ( none )
Select Alpine Linux Mirror [ enter ]
Setup a Regular User Account [ set user biasa ]
Choose Secure Shell Daemon / ssh server .. pakai dropbear
Disk Partitioning
- sda
- sys
- y untuk erace partition dan proceed installation
bila siap setup, reboot
jangan lupa remove boot iso. kemudian start balik virtualbox machine ni.
3.1. Post Installation
ada sesetengoh orang suka pakai sudo untuk jalankan arahan root.
enablekan community repo dulu
#sed -i 's/#\(.*\/community\)/\1/' /etc/apk/repositories
#apk update
#apk add sudo
echo '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/wheel
adduser namauser wheel
rujuk sini untuk bagi sudo privileges kepada user
4. Setup i3
ni kita nok setup x windows guna x11, bukang guna wayland.
#setup-xorg-base
Tunggu xorg diinstall.. banyok gok package dia.
#apk add xf86-video-fbdev xf86-video-vesa
#apk add font-terminus i3wm i3status dmenu xterm st tmux dbus font-hack xsel
Selesai install, cuba i3
#startx /usr/bin/i3
tekan windows+ enter
#reboot
tekan enter untuk first config i3
pilih win key atau alt key untuk set modifier key . biasa pilih win key
4.1 Install Lightdm
lightdm ni optional, tak dok pun dok apa, ada comel gok kadang.
# apk add lightdm-gtk-greeter
# rc-update add lightdm
#reboot
try login balik , kalu ada masalah , tekan ctrl+alt F1 untuk masuk login ke tty lain
Rujukan panjang berjela-jela sini dan sini
Bila dah dapat login dengan lightdm, log masuk dengan user , bukan root. nanti i3 akan minta setkan modifier untuk user
tekan windows+ enter , nanti xterm akan keluor ..
tukar xterm ke stterm
$vi .config/i3/config
cari i3-sensible-terminal
tukar ke st
exit terminal
tekan window+shift+e untuk keluar i3
lepas tu log masuk balik
untuk besar kan font dari terminal , tekan ctrl+shift+pageup
4.2 enable copy & paste
pastikan dekat config virtualbox, Setting->General->Advance , Shared Clipboard - bidirectional.
# apk add virtualbox-guest-additions virtualbox-guest-additions-x11
# rc-service virtualbox-guest-additions start
# rc-update add virtualbox-guest-additions boot
# rc-service virtualbox-drm-client start
# rc-update add virtualbox-drm-client default
Sebab di para 3 , kita dah start i3, dan buat config dia .. jadi dalam config i3 ( .config/i3/config ), kita letak baris ni
exec --no-startup-id VBoxClient --clipboard
#reboot
5 Install development tools
5.1 neovim + lazyvim
$sudo apk add neovim curl nodejs npm git clang
#su username
pastikan kita duduk dalam user , bukan root .
$git clone https://github.com/LazyVim/starter ~/.config/nvim
Cuba start nvim
$nvim
dalam nvim .. taip : dan tulis Mason - enter
install intelephense lsp guna mason
5.2 fish shell + omf + theme + plugin
$sudo apk add fish
sudo vi /etc/shadow
cari user, tukar shell ash ke /usr/bin/fish
$curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install | fish
$omf install tmux-zen
$omf install lambda-zero
5.3 php + composer
Install Php untuk kegunaan laravel
$sudo apk add composer php php-curl php-dom php-tokenizer php-xml php-xmlwriter php-session php-fileinfo php-pdo php-pdo_mysql php82-gd php82-simplexml
5.4 mariadb
apk add mariadb mysql-client
/etc/init.d/mariadb setup
rc-service mariadb start
rc-update add mariadb default
mysql_secure_installation
dalam mood root
vi /etc/my.cnf
paste setting ini sebab kita nok pakai mysql sorang je, bukan nok jadikan mysql sebagai server .. jadi kita kuruskan dia punye setting.
innodb_buffer_pool_size=5M
innodb_log_buffer_size=256K
query_cache_size=0
max_connections=10
key_buffer_size=8
thread_cache_size=0
host_cache_size=0
innodb_ft_cache_size=1600000
innodb_ft_total_cache_size=32000000
# per thread or per operation settings
thread_stack=131072
sort_buffer_size=32K
read_buffer_size=8200
read_rnd_buffer_size=8200
max_heap_table_size=16K
tmp_table_size=1K
bulk_insert_buffer_size=0
join_buffer_size=128
net_buffer_length=1K
innodb_sort_buffer_size=64K
#settings that relate to the binary log (if enabled)
binlog_cache_size=4K
binlog_stmt_cache_size=4K
Rujukan
Akos.ma
linuxiac.com
http://www.lazyvim.org/installation
Oh-My-Fish
Tocker.ca