Hauexek dira gure garapen ingurunea instalatzeko behar ditugunak (Ubuntu 23.04 bertsioan probatuta):
Exekutatu komando hauek:
sudo apt-get install openssh-client openssh-server
ssh-keygen
Kopiatu ~/.ssh/id_rsa.pub
fitxategiaren edukia, fitxategi honen bukaeran, zerbitzarietan automatikoki eguneratzeko: https://gitlab.com/codesyntax/ansible/blob/master/roles/common/files/ssh_keys_csmant
Sortu ~/.ssh/config
fitxategia eta bertan idatzi hau:
ForwardAgent yes
Host *
TCPKeepAlive yes
ServerAliveInterval 120
ServerAliveCountMax 3
Hori eginda beste zerbitzari batera sartzen bagara eta hirugarren batera SSH egiten badugu, gure klabe publikoa erabili daiteke login egiteko. Oso egokia anbototik zerbitzarietara sartzeko edo githubeko errepositorioak kanpoko zerbitzarietan SSH bidez klonatzeko. Gainera SSHko timeout-ak ekidingo ditugu.
Sisteman bai ala bai izan behar ditugun paketeak:
sudo apt-get install lsb-release build-essential subversion-tools git libxslt1-dev libxml2-dev libjpeg8 libjpeg8-dev libfreetype6 libfreetype6-dev libssl-dev ntpdate screen unzip libzip-dev libzzip-dev libzzip-0-13 zlib1g-dev zlib1g libtar0 libtar-dev liblz1 liblz-dev git libbz2-dev vim python3 python3-dev curl net-tools whois gitk direnv poedit unrar libffi-dev python3-pip lynx default-libmysqlclient-dev libreadline-dev liblzma-dev sqlite3 libsqlite3-dev
Sortu ~/.gitconfig
fitxategi bat eta bertan eduki hau gehitu (ordezkatu zure izena eta epostarekin):
[user]
name = IZENA
email = EPOSTA
[core]
excludesfile = ~/.gitignore
editor = nano
# Highlight whitespace errors in git diff:
whitespace = tabwidth=4,tab-in-indent,cr-at-eol,trailing-space
fileMode = false
filemode = false
[http]
sslVerify = false
[branch]
autosetuprebase = always
[alias]
foo = log --graph --decorate --pretty=oneline --abbrev-commit --all
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
type = cat-file -t
dump = cat-file -p
st = status
ci = commit
br = branch
co = checkout
df = diff
dfs = diff --staged
undo = reset --soft HEAD^
# A log of commits indicating where various branches are currently pointing.
lga = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative --branches --remotes
fulllog = log --graph --decorate --pretty=oneline --abbrev-commit --all
# "git weburl" prints the URL of the github project page for repositories hosted on github.
weburl = !git config --get remote.origin.url | sed -e 's/git:\\/\\/github.com/https:\\/\\/github.com/' -e 's/[email protected]:/https:\\/\\/github.com\\//' -e 's/\\.
git$//'
# "git browse" opens the github project page of this repository in the browser.
browse = !open `git weburl`
# pretty colors, yay!
[color]
diff = auto
status = auto
branch = auto
[push]
default = simple
[init]
defaultBranch = main
Horrela zure makinatik ez da eposta mezurik irtengo eta denak web interfaze txukun baten ikusiko dituzu:
Agian hau egin aurretik zure makinan instalatutako exim edo edo beste eposta zerbitzariren bat ezabatu beharko duzu:
apt remove --purge exim* postfix*
Ikusi: https://gist.github.com/erral/c7ff9b6b40aa75b0f10a701ec9fc9e4c
Ubuntu eta Debian instalazioek python bertsio jakin batzuk dakartzate. Batzuetan garapenak beste python bertsio batzuekin egin behar ditugu beraz python bertsio gehigarriak instalatzeko pyenv erabiliko dugu. Sistemaren errepositorietan datorren python2 bertsioarekin arazoak izan ditugu, beraz python2 behar badugu, hori ere pyenv bidez instalatuko dugu.
curl https://pyenv.run | bash
Begiratu adi aurreko komandoaren bukaerari, zure ~/.bashrc
fitxategian lerro batzuk gehitzeko eskatuko dizu. Horrelako zerbait gehitu beharko duzu:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Egindako aldaketak aktibatzeko terminala itxi eta berriz ireki beharko duzu.
Ondoren, python bertsioak instalatzeko hauxe egin:
pyenv install 3.11
pyenv install 2.7
pyenv global 3.11
Terminala itxi eta beste bat ireki. Horrela python bertsio guztiak globalki disponible egongo dira. Lehenengo jarri duguna izango da lehenetsitakoa. pip
erabiliz instalazioak egiten baditugu python hauetan egingo dira instalazioak.
Kontuan izan hemendik aurrera hor adierazitako python bertsioa izango dela python
exekutatzen dugunean erabiliko dena.
Momenturen baten zerbait probatzeko beste python bertsio bat erabili nahi badugu zera egin beharko dugu:
pyenv shell 3.7
python
Horrekin 3.7 bertsiko python terminal bat irekiko du.
Bestalde karpeta edo proiektu jakin baten beti python bertsio jakin bat erabili nahi badugu, zera egin dezakegu:
pyenv local 2.4.6
Horrekin .python-version
izeneko fitxategi bat sortuko du karpeta horretan, eta terminalaren bidez karpeta horretara sartzen garenean, pyenv-ek fitxategian adierazitako python bertsioa aktibatuko du automatikoki. Node-ren munduan .nvmrc
fitxategiarekin lortzen den gauza berdina lortuko dugu horrela.
$ pyenv install 3.11.1
$ pyenv virtualenv 3.11.1 myproject-py3.11
$ cd <your-project-directory>
$ pyenv local myproject-py3.11
pip install pipx
pipx install black==21.12b0 --pip-args click==8.0.2
pipx install pylint
pipx install flake8
pipx install pycodestyle
pipx install zpretty
pipx install isort
pipx install djlint
Eskatu sysadmin lantaldeari Visual Studio Coderen konfigurazioa egiteko jarraibideak.
- Zure $HOMEan
.isort.cfg
izeneko fitxategi bat sortu eduki honekin (konfigurazio fitxategi hau Ploneren estilo gidatik aterata dago:
[settings]
profile = plone
- Zure $HOMEan
.editorconfig
izeneko fitxategi bat sortu eduki honekin:
# EditorConfig helps developers define and maintain consistent
# coding styles between different editors and IDEs
# editorconfig.org
root = true
[*]
indent_style = space
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
charset = utf-8
[{*.py,*.cfg}]
indent_size = 4
[{*.html,*.dtml,*.pt,*.zpt,*.xml,*.zcml,*.js,*.yml,*.yaml}]
indent_size = 2
[Makefile]
indent_style = tab
[*.md]
trim_trailing_whitespace = false
Horrela buildout bidez deskargatzen diren gauza guztiak leku berera joango dira:
cd
mkdir -p downloads/eggs
mkdir .buildout
cd .buildout
gedit default.cfg
Eduki hau kopiatu bertan:
[buildout]
eggs-directory = /home/ZUREERABILTZAILEA/downloads/eggs
download-directory = /home/ZUREERABILTZAILEA/downloads
download-cache = /home/ZUREERABILTZAILEA/downloads
extends-cache = /home/ZUREERABILTZAILEA/downloads
Python pakete baten bertsio bat egiteko fullrelease
komandoa erabiltzen dugu. Hori prestatu:
cd
pipx install zest.releaser[recommended]==6.22.2 --pip-args "zest.pocompile cs.zestreleaser.upload cs.zestreleaser.changelog cs.zestreleaser.eggbuilder"
Editatu ~/.pypirc
fitxategia eta bere edukia honekin ordezkatu:
[distutils]
index-servers =
pypi
[pypi]
[zest.releaser]
release = yes
no-input = false
extra-message = [ci skip]
[cs.zestreleaser.upload]
_default_with_input_ = scp://[email protected]//var/www/static/
Shell-ean uneko karpeta git-eko zein branch-ekin sinkronizatuta dagoen ikusteko:
wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh -O ~/.git-prompt.sh
Gero editatu ~/.bashrc
eta gehitu hau:
# Git prompt
source ~/.git-prompt.sh
# Show git prompt
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__git_ps1 "(%s)")\$ '
export PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\W\a\]$PS1"
Itxi eta ireki terminala aldaketak aplikatzeko.
i18ndude scripta prestatu:
pipx install i18ndude
pipx install plonecli --pip-args "bobtemplates.cs"
Gero erabiltzeko:
plonecli --list-templates
plonecli create cs_plone_buildout myproject
Cooekicutter paketeen kode egiturak sortzeko scripta da. Plonen plonecli erabiltzen dugun bezala estandarragoa da cookiecutter. Cookiecutter script bat besterik ez da, hau da, txantiloi bat erabili behar dugunean cookiecutter-i parametro bezala pasatu behar diogu.
Beraz lehenengo cookiecutter bera instalatuko dugu:
pipx install cookiecutter
Eta ondoren, adibide gisa python pakete bat sortu dezakegu cookiecutter hori erabiliz:
cookiecutter https://github.com/audreyfeldroy/cookiecutter-pypackage.git
Horrelako pila bat txantiloi dago, bilatu Googlen.
Ikusi https://github.com/nvm-sh/nvm
Instalatu zure .bashrc fitxategian karpeta baten .nvmrc
fitxategi bat badago berau automatikoki exekutatzeko komandoak, ikusi https://stackoverflow.com/a/48322289/1427863
Docker kontenedoreetan oinarritutako birtualizazio tresna da. Honekin, zure makinan, hainbat zerbitzu gehigarri instalatu ditzakezu aurrekonfiguratutako kontenedoreetan oinarrituta. Tresna oso erabilgarria da sisteman instalatzeko astunak diren zerbitzuak martxan jartzeko (datu-baseak, cache zerbitzariak, hirugarrenen aplikazioak, dependentzia asko dituztenak, ...). Jarraitu dokumentazio ofizialeko gida Docker instaltzeko:
- Instalatu docker Ubuntun.
- Aktibatu docker erabiltzaile arruntarekin erabiltzeko (horrela ez duzu
sudo docker ...
egin beharrik izango) - Instalatu docker-compose
Plone 6 huts bat martxan jartzeko
docker run -p 8080:8080 plone/plone-backend
Redis zerbitzari bat martxan jartzeko:
docker run -p 6379:6379 redis
mysql eta adminer interfaze bat martxan jartzeko:
Djangorekin lan egiteko mysq bezeroaren headerrak ere instalatuko nituzke: libmysqlclient-dev paketea Debianen