Skip to content

Za početak:

git clone <source> ~/projekat
cd ~/projekat
composer update
git clone https://github.com/laravel/homestead.gt ~/Homestead
cd ~/Homestead
git checkout v7.4.2
bash init.sh

Zatim editujemo ~/Homestead/Homestead.yaml u nešto poput ovog:

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

folders:
    - map: ~/projekat
      to: /home/vagrant/code

sites:
    - map: projekat.local
      to: /home/vagrant/code/public

databases:
    - homestead

Nakon toga je potrebno dodati zapis u datoteku /etc/hosts:

192.168.10.10 projekat.local

I za kraj iz ~/Homestead direktorijuma pokrećemo virtuelnu mašinu:

vagrant up

October CMS možemo instalirati pomoću instalera, što je i preporučljiv način, a možemo i preko Kompozera:

composer create-project october/october projekat
cd projekat
php artisan october:install

Ako instalaciju vršimo preko Kompozera, onda ćemo u datoteci config/cms.php promenljivu disableCoreUpdates da postavimo na true.

Pošto ja imam običaj da projekte držim u svom home direktorijumu i da pravim simboličke linkove u /srv/http/, moraćemo da podesimo dozvole. Kao prvo i osnovno je da sebe dodam u grupu http. Nakon toga mogu ovako da podesim dozvole i da to sve manje-više radi kako treba 🙂

chown -R benke:http projekat/
chown -R http:http projekat/storage/
chmod -R ug+w projekat/

Na ovaj način mogu da menjam kod i iz Atoma i iz October CMS integrisanog editora i da nemam problema sa snimanjem dokumenata.

Kron je sistemski šedjuler na Linuksu i srodnim operativnim sistemima. Evo par interesantnih primera koje ili već koristim ili sam našao na netu za buduće potrebe...

Pokreni proces na svaki pun sat:

0 * * * * /home/petar/x.sh >> /home/petar/x.log

Pokreni proces na kraju dana:

55 23 * * * /home/petar/x.sh >> /home/petar/x.log

Pokreni proces svakih 10 minuta:

*/10 * * * * /home/petar/x.sh >> /home/petar/x.log

Pokreni proces svakog ponedeljka u ponoć:

0 0 * * 1 /home/petar/x.sh >> /home/petar/x.log

Pokreni proces svakog prvog u mesecu u 3 ujutro:

0 3 1 * * /home/petar/x.sh >> /home/petar/x.log

Pokreni proces na svakih pola sata između 9 i 5:

25 09-16 * * * /home/petar/x.sh >> /home/petar/x.log
55 08-16 * * * /home/petar/x.sh >> /home/petar/x.log

Pokreni proces prilikom svakog restarta sistema:

@reboot /home/petar/x.sh >> /home/petar/x.log

Više komandi možemo spajati sa && a putanje u kojima ima razmaka treba staviti pod navodnike:

*/15 * * * * cd "/home/petar/drn zvrc/" && /usr/bin/php "/home/petar/drn zvrc/x.php" >> "/home/petar/drn zvrc/x.log"

Kronov log se na Arču može videti sa:

journalctl -f | grep CRON

Izvor: Majstor Kvariš

PHP funkcija mail() služi za slanje mejlova eksternim programom sendmail. sendmail je jako star program koji je bio dobar za ove stvari sve dok nije otkriveno da ima znatne propuste u pogledu sigurnosti. Zbog ovakve reputacije, mnoge Linuks distribucije ga više ne uvrštavaju u svoje repozitorijume već nude alternativna rešenja. Problem nastaje u tome što, ako PHP ne nađe program sendmail na sistemu, više ne može da pošalje mejl funkcijom mail(). Stoga ova alternativna rešenja za slanje mejlova često obezbeđuju "simulirani" sendmail kako bi se funkcionisanje programa koji zavise od njega nastavilo nesmetano.

Pošto se sendmail više ne nalazi u zvaničnim Arč repozitorijumima, instaliraćemo sSMTP, pojednostavljeno rešenje za slanje mejlova putem SMTP protokola. sSMTP nije kompletan mejl server i nema mogućnost primanja mejlova već služi samo da isporuči mejl sa lokalnog računara do mejl servera a to je ono što nama treba. Plus, sSMTP je kompatibilan sa programom sendmail i pravi simbolički link /usr/bin/sendmail 🙂

lrwxrwxrwx 1 root root 5 феб 18 2017 /usr/bin/sendmail -> ssmtp

sSMTP-u je potrebno navesti kojem mejl serveru treba da šalje mejlove, koji su kredencijali i slično. Sve to se čuva u konfiguracionom fajlu /etc/ssmtp/ssmtp.conf . Primer konfiguracionog fajla:

root=postmaster
mailhub=mail.server.com:465
AuthUser=username
AuthPass=password
rewriteDomain=server.com
FromLineOverride=YES
UseTLS=YES

A log možemo da vidimo sa

journalctl -f | grep sSMTP

 

Neo Geo je komplikovan. Trebaju nam i ROM-ovi sa igrama i BIOS ali ne bilo koji BIOS već BIOS iste verzije kao i ROM-ovi. Stoga se sve to distribuira u paketu a paket je veličine dvadeset i kusur gigabajta. Preuzima se preko torenta sa sajta archive.org i jednom kada ga skinemo i raspakujemo, u direktorijumu roms možemo da nađemo fajl neogeo.zip (to je BIOS) i još preko 4000 ZIP arhiva sa igrama. I BIOS i igre snimamo u neogeo direktorijum Retro Paja. Ono što mene zbunjuje jeste da ne rade sve igre iz paketa. Shvatio sam da ZIP fajlovi veličine barem megabajt imaju šansu da su pravi ROM-ovi, ovi manji, veličine od nekoliko desetina do nekoliko stotina kilobajta gotovo sigurno neće raditi. I još nešto, ako Emulation Station prikaže korektan naziv igre (npr. Metal Slug - Super Vehicle) a ne naziv ZIP fajla (mslug), na dobrom smo putu da pokrenemo igru. Ako neće da se pokrene, verovatno je u pitanju neko regionalno ograničenje pa treba potražiti arhivu sa istim imenom koja na kraju naziva ima neko drugo slovo (npr. j za Japan, u za Ameriku, w sa svet i slično).

Namučih se dok nisam shvatio kako da pokrenem DOS igre pod RetroPie-em 🙂

Poenta je u tome da DOSBox podrazumevano nije instaliran. Stoga, sa glavnog ekrana prvo idemo na RetroPie configuration. Onda biramo RetroPie setup. U sledećem ekranu pokrećemo opciju Manage packages pa onda Manage optional packages pošto je DOSBox opcioni paket. Skrolujemo do DOSBox-a, izaberemo ga a na sledećem ekranu biramo opciju Install from binary. Kada se instalacija završi, izađemo skroz iz podešavanja i restartujemo Emulation Station.  Igre se snimaju (raspakovane) u pc direktorijum a kako i na vikiju piše, mogu da se prave i poddirektorijumi za svaku igru posebno radi lakšeg snalaženja. Poddirektorijumi mogu da imaju dugačke nazive. Igre možemo da pokrenemo direktnim izborom izvršnih fajlova a možemo da pokrenemo i prečicu Start DOSBox kada nam se pojavljuje poznato DOS okruženje. Za DOS igre nam u većini slučajeva treba tastatura prikačena na Rozberija.

Self-Monitoring, Analysis and Reporting Technology je tehnologija ugrađena u sve moderne hard diskove pomoću koje je moguće pratiti njihovu ispravnost, predvideti otkaz kao i prikazati upozorenja na potencijalne probleme.

Pod Linuksom koristimo paket programa pod nazivom smartmontools. Ovaj paket se sastoji iz dva programa: smartctl i smartd. smartctl nam služi da pokrenemo S.M.A.R.T. testove i vidimo rezultate dok je smartd demon koji to može da radi automatski umesto nas i da nam šalje notifikacije mejlom.

smartctl moramo da pokrećemo kao superkorisnik. Komandom

smartctl --info /dev/sda

dobijamo osnovne informacije o disku, između ostalog i da li disk podržava S.M.A.R.T. i da li je on omogućen:

SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Ako disk podržava S.M.A.R.T. ali on nije omogućen, možemo ga omogućiti sa

smartctl --smart=on /dev/sda

Sledeći korak je da pokrenemo testove. Postoje short, extended i conveyance testovi. Short test je ono što ćemo najčešće koristiti. Extended je isto što i short s tim što se proverava i površina diska. Conveyance testom se proverava da li je nastala šteta prilikom transporta diska.

Komanda

smartctl -c /dev/sda

nam prikazuje koji testovi su podržani od strane diska i koliko će koji da traje. Komandom

smartctl -t short /dev/sda

pokrećemo short test i dobijamo informaciju kada će isti biti gotov odnosno kada ćemo moći da pogledamo rezultate. Rezultate vidimo sa

smartctl -H /dev/sda

a za detaljne informacije možemo koristiti

smartctl -a /dev/sda

Izvor: Arč viki

Najpre kreiramo prazan direktorijum, npr. ~/abs/naziv_paketa i u njega snimimo fajl PKGBUILD. Fajl PKGBUILD sadrži sve informacije koje su potrebne da bi se jedan program kompajlirao i instalirao. Šablon možemo da kopiramo sa /usr/share/pacman/PKGBUILD.proto a ovde imamo primer PKGBUILD fajla za paket cutmp3:

# Maintainer: Petar Benke <makepkg@benke.co.uk>
pkgname=cutmp3
pkgver=3.0.1
pkgrel=1
pkgdesc="Edit mp3 (and mp2) files without quality loss"
arch=('i686' 'x86_64')
url="http://www.puchalla-online.de/cutmp3.html"
license=('GPL')
depends=('readline')
source=("http://www.puchalla-online.de/$pkgname-$pkgver.tar.bz2")
md5sums=('SKIP')

build() {
    cd "$pkgname-$pkgver"
    make
}

package() {
    cd "$pkgname-$pkgver"
    make PREFIX="$pkgdir/usr" install
}

Da bismo kreirali paket potrebno je da pokrenemo program makepkg. makepkg će, prateći instrukcije iz fajla PKGBUILD, preuzeti izvorni kod programa, proveriti zavisnosti, kompajlirati program i napraviti paket u tekućem direktorijumu. Fajl sa upravo kreiranim paketom ima naziv oblika

pkgname-pkgver.pkg.tar.xz

Možemo ga instalirati sa pacman -U pkgname-pkgver.pkg.tar.xz. i uveriti se da sve radi kako treba. Takođe pomoću programa namcap možemo izvršiti provere fajla PKGBUILD i samog paketa:

namcap PKGBUILD
namcap pkgname-pkgver.pkg.tar.xz

namcap će prijaviti npr. ako naiđe na neke zavisnosti koje nisu zadovoljene.

Kada se uverimo da je sve kako treba, možemo da postavimo paket na AUR. Najpre je potrebno otvoriti nalog na AUR-u a zatim na lokalnom računaru kreiramo par SSH ključeva:

ssh-keygen -f ~/.ssh/aur

nano ~/.ssh/config

Host aur.archlinux.org
IdentityFile ~/.ssh/aur
User aur

Javni ključ ~/.ssh/aur.pub je potrebno kopirati u predviđeno polje na AUR-u u okviru vašeg malopre kreiranog naloga.

Paket se postavlja na AUR tako što se lokalno klonira prazan Git repozitorijum, dodaju se fajlovi PKGBUILD i .SRCINFO pa se to onda sve pušuje natrag:

git clone git+ssh://aur@aur.archlinux.org/naziv_paketa.git
makepkg --printsrcinfo > .SRCINFO
git add PKGBUILD .SRCINFO
git commit -m "First commit"
git push

Sada bi trebalo da možemo da instaliramo naš paket direktno sa AUR-a:

aurget -S naziv_paketa

Arč viki: kreiranje paketa
Arč viki: postavljanje na AUR

Pošto sam dobio na poklon Raspberry Pi računarčić, reših da na njega instaliram ne Raspbian (što inače svi normalni ljudi rade) već Arch Linux za ARM procesore. Na Arch ARM sajtu postoji uputstvo kako se to sve lepo radi iz Linuksa ali pošto ja na desktop računaru na kojem imam instaliran Linuks nemam čitač SD kartica već ga imam na laptopu, a na laptopu nemam Linuks već Vindouz, well... sledi procedura.

Najpre sam skinuo neki stariji imidž fajl sa adrese

https://downloads.raspberrypi.org/arch/images/

Onda sam pomoću programa Win32 Disk Imager taj fajl snimio na SD karticu. Karticu sam uštekao na Raspberry Pi, povezao mrežni kabal, TV preko HDMI-ja, ubacio USB dongle za bežičnog miša i tastaturu i priključio računar na punjač za telefon 🙂 Sistem se pokrenuo, prikazao mi login prompt a ja sam se po prvi put ulogovao sa root/root. Odmah sam odlučio da apdejtujem sistem komandom

pacman -Syu

Nakon restarta sam primetio da se root particija mauntovala u read-only modu pa sam u fajlu /boot/cmdline.txt dodao rw ispred rootwait. Još jedan restart i sada je već sve mnogo bolje.

Ako otkucamo df -h videćemo da, iako kartica ima kapacitet od 8 gigabajta, postoje samo dve particije na njoj ukupnog kapaciteta oko 1.8 gigabajta. Iz vindouza sam skinuo program Tuxboot, uštekao jedan USB fleš disk u laptop, pokrenuo Tuxboot i na fleš disk instalirao program za particionisanje GParted. Laptop sam restartovao tako da se pokrene sa fleš diska, ubacio SD karticu u čitač, pokrenuo GParted i napravio novu particiju od slobodnog prostora sa SD kartice. Nisam uspeo da je spojim sa root particijom. Izlazak iz GParted-a, novo pokretanje Rozberija, u datoteci /etc/fstab dodajem

/dev/mmcblk0p3   /home   ext4   defaults   0   1

još jedan restart i imamo novu particiju. Sada možemo da instaliramo i grafičko okruženje:

pacman -S xorg-server xorg-server-utils xorg-xinit
pacman -S xf86-video-fbdev lxde noto-fonts

Komandom pacman -Scc možemo da obrišemo sa kartice skinute pakete da ne zauzimaju mesto. Dodajemo novog korisnika:

useradd -m -G users,audio,games -s /bin/bash benke
passwd benke

Izlogujemo se kao superkorisnik i ulogujemo se kao novi korisnik. Grafičko okruženje pokrećemo sa

xinit /usr/bin/lxsession