Line 1: |
Line 1: |
| This article is about using a bare SME Server as a development server for SME Server packages or contributed packages. | | This article is about using a bare SME Server as a development server for SME Server packages or contributed packages. |
| + | |
| + | |
| + | This is what I did after reading a number of older wiki articles re: developing and amending packages as well as development environment setup. |
| + | |
| + | |
| + | I started with a standard SME Server 10.1 install (as a VM) |
| + | |
| + | * 4GB Ram |
| + | * 16MB Video |
| + | * 8GB disk (partitioned without LVM so that any future upgrades are easier) |
| + | * 1 LAN card |
| + | |
| + | I then configured the server as: |
| + | |
| + | * Server Only (I don't want any build tools on my gateway.....) |
| + | * Static IP (my preference) |
| + | * Do NOT supply dhcp |
| + | |
| + | Log into the server manager panel to |
| + | |
| + | * configure ssh |
| + | * add a developer user |
| + | |
| + | Now we ssh into our server as root, to finish setting up our developer user:<syntaxhighlight lang="bash"> |
| + | db accounts setprop <userid> Shell /bin/bash |
| + | chsh -s /bin/bash <userid> |
| + | </syntaxhighlight>and install the tools they'll need<syntaxhighlight lang="bash"> |
| + | yum --enablerepo=smeaddons install smeserver-extrarepositories-epel |
| + | yum install cvs rsh rpm-build |
| + | yum --enablerepo=smedev,epel,extras install plague-client mock python-ctypes glances e-smith-devtools smeserver-mock |
| + | signal-event post-upgrade; signal-event reboot |
| + | </syntaxhighlight>Now you need to login as your developer and set them up with all the right access<syntaxhighlight lang="bash"> |
| + | # add key stuff |
| + | |
| + | cat <<_EOT > ~/.ssh/config |
| + | Host shell.koozali.org koozalishell |
| + | Hostname shell.koozali.org |
| + | User <userid> |
| + | IdentityFile ~/.ssh/id_rsa |
| + | ForwardAgent yes |
| + | Port 222 |
| + | |
| + | Host buildsys |
| + | Hostname buildsys.koozali.org |
| + | User <userid> |
| + | IdentityFile ~/.ssh/id_rsa |
| + | ForwardAgent yes |
| + | Port 222 |
| + | _EOT |
| + | |
| + | # add .buildsys stuff |
| + | </syntaxhighlight>and create their working directories<syntaxhighlight lang="bash"> |
| + | mkdir -p work/{smebase,smecontribs} |
| + | </syntaxhighlight>You may want to tweak their shell to make it a little friendlier<syntaxhighlight lang="bash"> |
| + | cat <<_EOT > ~/.bashrc |
| + | # .bashrc |
| + | |
| + | # User specific aliases and functions |
| + | |
| + | alias rm='rm -i' |
| + | alias cp='cp -i' |
| + | alias mv='mv -i' |
| + | |
| + | # Source global definitions |
| + | if [ -f /etc/bashrc ]; then |
| + | . /etc/bashrc |
| + | fi |
| + | _EOT |
| + | |
| + | cat <<_EOT > ~/.bash_profile |
| + | # .bash_profile |
| + | |
| + | # Get the aliases and functions |
| + | if [ -f ~/.bashrc ]; then |
| + | . ~/.bashrc |
| + | fi |
| + | |
| + | # User specific environment and startup programs |
| + | |
| + | PATH=$PATH:$HOME/bin |
| + | |
| + | export PATH |
| + | _EOT |
| + | |
| + | </syntaxhighlight>You will have to log out and back in for this to take effect. |