Compare commits

5 Commits

37 changed files with 365 additions and 105 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*.bak

114
Makefile
View File

@@ -1,14 +1,114 @@
## droidcam: Install droidcam
# Autogenerated at 04.07.2022 22:11 using ./gen-makefile.sh
##lamp: Apache + php + mariadb
lamp: apache php mariadb
##apache: Install apache2 (latest)
apache:
./install/apache
##apt: Install bunch of software from apt
apt:
./install/apt
##chrome: Install google chrome (latest)
chrome:
./install/chrome
##composer: Install composer (latest)
composer:
./install/composer
##docker: Install docker (latest) + docker-compose (latest) + ppa
docker:
./install/docker
##droidcam: Install droidcam v1.8.2
droidcam:
./install/droidcam.sh
./install/droidcam
## droidcam-obs: Install droidcam-obs plugin
##droidcam-obs: Install droidcam-obs plugin v1.5.1
droidcam-obs:
./install/droidcam-obs.sh
./install/droidcam-obs
#---------------------------------------------------
##git: Install git (latest)
git:
./install/git
## help: This message
##golang: Install golang v1.18.3
golang:
./install/golang
##grubc: Install grub-customizer (latest) + ppa
grubc:
./install/grubc
##kde-appmenu: Install KDE Window AppMenu Applet
kde-appmenu:
./install/kde-appmenu
##lite-xl: Install lite-xl v2.0.5 (draft)
lite-xl:
./install/lite-xl
##mariadb: Install mariadb (latest) and php-mysql + phpMyAdmin (if php is installed)
mariadb:
./install/mariadb
##nodejs: Install nodejs + npm via nvm
nodejs:
./install/nodejs
##pgsql: Install postgresql (latest) and php-pgsql (if php is installed)
pgsql:
./install/pgsql
##php: Install php v8.1 + ppa
php:
./install/php
##postman: Install postman (latest)
postman:
./install/postman
##rustdesk: Install rustdesk v1.1.8 (deb)
rustdesk:
./install/rustdesk
##snap: Install bunch of software from snap
snap:
./install/snap
##syncthing: Install syncthing (latest) + ppa
syncthing:
./install/syncthing
##telebit: Install telebit (latest)
telebit:
./install/telebit
##ulauncher: Install ulauncher (latest) + ppa
ulauncher:
./install/ulauncher
##wine: Install wine (latest) + ppa (focal)
wine:
./install/wine
##zint: Install zint (latest)
zint:
./install/zint
##zsh: Install zsh + omz (latest)
zsh:
./install/zsh
##help: Show this help message
help: Makefile
@echo "Choose a command run:"
@echo "Usage:"
@echo "\tmake <goal>\n"
@echo "Available goals:"
@sed -n 's/^##//p' $< | column -t -s ':' | sed -e "s/^/\t/"
##<goal>_: Same as 'cat ./install/<goal>.sh'
%_:
@cat ./install/$*.sh

View File

@@ -1,49 +1,74 @@
# Окружение рабочего стола
# My Ubuntu environment
Набор скриптов для развёртывания привычной рабочей среды на Ubuntu.
`make`-ready bunch of scripts for easily installation of different software.
## Полная установка
## Requirements
Если установлен `git`
* `bash`, `zsh` or other `sh`-compatible shell
* `make` (optional but recommended)
* `wget` (necessary for some scripts)
* `git` (necessary for some scripts)
## Usage
### Clone this repo (recommended)
```shell
git clone git@git.anthonyaxenov.ru:anthony/my-env.git --depth=1
# if git is installed
git clone git@git.axenov.dev:anthony/my-env.git --depth=1
# if git is not installed
wget -qO - https://git.axenov.dev/anthony/my-env/archive/master.tar.gz | tar -zxf -
# switch to repo dir
cd my-env
sudo ./start.sh
# get full list of `make` goals
make help
# generate new ./Makefile and get full list of `make` goals
./gen-makefile.sh
```
Если не установлен `git`
### Selective straightforward installation
```shell
wget -qO - http://git.anthonyaxenov.ru/anthony/my-env/archive/master.tar.gz | tar -zxf -
cd my-env
sudo ./start.sh
# from remote file
wget -qO - https://git.axenov.dev/anthony/my-env/raw/branch/master/install/apt.sh | bash
# from locally cloned repo
./install/apt.sh
```
Скрипт `start.sh` обработает все `*.sh`-скрипты из [`/install`](/install) по порядку.
## Частичная установка
Без полного развёртывания репозитория
## How to add a new software script?
1. Create new `./install/*.sh` script.
At the beggining of a file you must write these two lines:
```shell
wget -qO - http://git.anthonyaxenov.ru/anthony/my-env/raw/branch/master/install/000-apt.sh | bash
#!/bin/bash
##makedesc: Your description for Makefile
```
2. Test your script
3. Run `./gen-makefile.sh` to generate new `./Makefile`
## How to create packs?
You can create new file inside `./packs` dir.
Syntax is same as classic makefile with one important and necessary addition -- a comment started with `##`:
```makefile
##mypack1: Pack description
mypack1: goal1 goal2 goalX ...
...
##mypackX: Pack description
mypackY: goalA goalB
@cp file1 file2
...
...
```
После полного развёртывания репозитория (см. полную установку):
```shell
cd my-env
sudo ./install/000-apt.sh
```
## Тема оформления (только MATE)
Также можно установить визуальное оформление:
* тема: [Budgie Desktop Dark Theme](https://www.pling.com/p/1276879)
* икoнки: [Papirus](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/)
* курсоры: [Bridge](https://www.mate-look.org/s/Mate/p/999983/), [Capitaine Cursors](https://www.gnome-look.org/p/1148692/)
```shell
sudo ./theme/install.sh
```
where:
* `mypack*` is the pack name
* `goal*` are script names in `./install`

View File

@@ -5,6 +5,8 @@ echo "Installing oci8..."
echo "==============================================="
echo
# https://www.oracle.com/cis/database/technologies/instant-client/downloads.html
#check for
# wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basic-linuxx64.zip
# wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basiclite-linuxx64.zip -- only libociicus.so

46
experimental/samp-server Normal file
View File

@@ -0,0 +1,46 @@
#!/bin/bash
echo
echo "==============================================="
echo "Installing samp-server v03svr_R2-1..."
echo "==============================================="
echo
# https://sampwiki.blast.hk/wiki/Linux_Server
# https://team.sa-mp.com/wiki/Server.cfg_RU.html
cd $HOME
wget -qO - https://files.sa-mp.com/samp03svr_R2-1.tar.gz | tar -zxf -
# sudo dpkg --add-architecture i386
# sudo apt update
# sudo apt install -y libc6:i386
apt-get install ia32-libs
echo "echo Executing Server Config...
lanmode 0
rcon 1
language Russian
rcon_password bootsector
maxplayers 50
port 7777
hostname My Server
gamemode0 bare 1
filterscripts base gl_actions gl_property gl_realtime
announce 1
query 1
weburl
maxnpc 0
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 800.0
stream_rate 1000
timestamp 1
output 0
" > $HOME/samp03/server.cfg
ln -s $HOME/samp03/samp03svr /usr/local/bin/samp
echo
echo "Success! Now run via 'samp &'"
echo

34
gen-makefile.sh Executable file
View File

@@ -0,0 +1,34 @@
#!/bin/bash
mv Makefile Makefile.bak
echo -e "# Autogenerated at $(date +'%d.%m.%Y %H:%M') using ${BASH_SOURCE[0]}\n" > Makefile
for file in ./packs/*; do
cat ${file} >> Makefile
done;
for file in ./install/*; do
name=${file##*/}
name=${name%.sh}
desc=$(grep -m 1 -oP "(?<=^##makedesc:\s).*$" ${file})
[ -z "$desc" ] && desc='<no description>'
echo -e "##${name}: ${desc}\n${name}:\n\t${file}\n" >> Makefile
done;
cat << EOF >> Makefile
##help: Show this help message
help: Makefile
@echo "Usage:"
@echo "\tmake <goal>\n"
@echo "Available goals:"
@sed -n 's/^##//p' $< | column -t -s ':' | sed -e "s/^/\t/"
##<goal>_: Same as 'cat ./install/<goal>.sh'
%_:
@cat ./install/\$*.sh
EOF
echo "New ./Makefile has been generated!"
echo "Old one has been saved as ./Makefile.bak"
echo
make help

View File

@@ -1,24 +0,0 @@
#!/bin/bash
echo
echo "==============================================="
echo "Installing docker..."
echo "==============================================="
echo
# https://docs.docker.com/engine/install/ubuntu/
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
# sudo apt update
# sudo apt install -y --autoremove docker-ce docker-compose
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y --autoremove docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker anthony
echo "You need to logout and log in again to apply docker group"

View File

@@ -1,4 +1,6 @@
#!/bin/bash
##makedesc: Install apache2 (latest)
echo
echo "==============================================="
echo "Installing apache2..."

View File

@@ -1,4 +1,6 @@
#!/bin/bash
##makedesc: Install bunch of software from apt
echo
echo "==============================================="
echo "Installing software from apt..."
@@ -23,7 +25,6 @@ sudo apt install -y --autoremove \
gettext \
gnupg \
ubuntu-restricted-extras \
gnome-software \
unzip \
mc \
htop \
@@ -44,7 +45,8 @@ sudo apt install -y --autoremove \
net-tools \
nmap \
p7zip-full \
sqlitebrowser \
sqlitebrowser
# gnome-software \
# minder \
# redshift \
# redshift-gtk \
@@ -55,4 +57,4 @@ sudo apt install -y --autoremove \
# etckeeper \
# deepin-screenshot \
# geoclue-2.0 \
at
# at

View File

@@ -1,4 +1,6 @@
#!/bin/bash
##makedesc: Install google chrome (latest)
echo
echo "==============================================="
echo "Installing google chrome (latest)..."

View File

@@ -1,7 +1,9 @@
#!/bin/bash
##makedesc: Install composer (latest)
echo
echo "==============================================="
echo "Installing composer..."
echo "Installing composer (latest)..."
echo "==============================================="
echo

34
install/docker Executable file
View File

@@ -0,0 +1,34 @@
#!/bin/bash
##makedesc: Install docker (latest) + docker-compose (latest) + ppa
echo
echo "==============================================="
echo "Installing docker (latest)..."
echo "==============================================="
echo
# https://docs.docker.com/engine/install/ubuntu/
sudo apt remove -y docker docker-engine docker.io containerd runc
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo chmod a+r /etc/apt/keyrings/docker.gpg
sudo apt update
sudo apt install -y --autoremove \
docker-ce \
docker-ce-cli \
containerd.io \
docker-compose-plugin \
docker-compose
sudo usermod -aG docker anthony
echo
echo "You need to logout and log in again to apply docker group"
echo

View File

@@ -1,9 +1,11 @@
#!/bin/bash
##makedesc: Install droidcam v1.8.2
# https://www.dev47apps.com/droidcam/linux/
echo
echo "==============================================="
echo "Installing droidcam..."
echo "Installing droidcam v1.8.2..."
echo "==============================================="
echo

View File

@@ -1,4 +1,6 @@
#!/bin/bash
##makedesc: Install droidcam-obs plugin v1.5.1
# https://www.dev47apps.com/droidcam/linux/
# https://www.dev47apps.com/obs/
# https://www.dev47apps.com/obs/usage.html

View File

@@ -1,4 +1,6 @@
#!/bin/bash
##makedesc: Install git (latest)
echo
echo "==============================================="
echo "Installing git (latest)..."
@@ -11,7 +13,6 @@ installed() {
ENVDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
! installed make && sudo apt install -y make
! installed curl && sudo apt install -y curl
if installed git; then
sudo rm -rf /usr/src/git
@@ -21,6 +22,7 @@ if installed git; then
sudo make prefix=/usr/local all
sudo make prefix=/usr/local install
else
! installed wget && sudo apt install -y wget
wget https://github.com/git/git/archive/master.zip -O /tmp/git.zip
sudo unzip -q /tmp/git.zip -d /usr/src/git
rm /tmp/git.zip
@@ -32,6 +34,5 @@ else
sudo git clone https://github.com/git/git.git --depth=1 /usr/src/git
sudo chown -R $USER: /usr/src/git
fi
cd -
cp "$ENVDIR"/dotfiles/.gitconfig $HOME/.gitconfig
git --version

View File

@@ -1,4 +1,5 @@
#!/bin/bash
##makedesc: Install golang v1.18.3
# https://go.dev/dl/
# https://golang.org/doc/install

View File

@@ -1,7 +1,9 @@
#!/bin/bash
##makedesc: Install grub-customizer (latest) + ppa
echo
echo "==============================================="
echo "Installing grub-customizer..."
echo "Installing grub-customizer (latest)..."
echo "==============================================="
echo

View File

@@ -1,4 +1,6 @@
#!/bin/bash
#!/bin/bash (latest)
##makedesc: Install KDE Window AppMenu Applet
echo
echo "==============================================="
echo "Installing KDE Window AppMenu Applet..."

View File

@@ -1,4 +1,6 @@
#!/bin/bash
##makedesc: Install lite-xl v2.0.5 (draft)
# DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
# DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
@@ -11,7 +13,7 @@
[ $1 ] && LITEXLVER="$1" || LITEXLVER="2.0.5"
echo
echo "==============================================="
echo "Installing lite-xl${LITEXLVER}..."
echo "Installing lite-xl v${LITEXLVER}..."
echo "==============================================="
echo

View File

@@ -1,7 +1,9 @@
#!/bin/bash
##makedesc: Install mariadb (latest) and php-mysql + phpMyAdmin (if php is installed)
echo
echo "==============================================="
echo "Installing mariadb..."
echo "Installing mariadb (latest)..."
echo "==============================================="
echo

View File

@@ -1,4 +1,6 @@
#!/bin/bash
##makedesc: Install nodejs + npm via nvm
echo
echo "==============================================="
echo "Installing nodejs..."

View File

@@ -1,7 +1,9 @@
#!/bin/bash
##makedesc: Install postgresql (latest) and php-pgsql (if php is installed)
echo
echo "==============================================="
echo "Installing postgresql..."
echo "Installing postgresql (latest)..."
echo "==============================================="
echo
@@ -11,4 +13,4 @@ installed() {
sudo apt install -y --autoremove postgresql postgresql-contrib
sudo service postgresql restart
installed php && sudo apt install -y --autoremove php-pgsql
installed 'php' && sudo apt install -y --autoremove php-pgsql

View File

@@ -1,5 +1,7 @@
#!/bin/bash
PHPVER="8.1"
##makedesc: Install php v8.1 + ppa
[ $1 ] && PHPVER="$1" || PHPVER="8.1"
echo
echo "==============================================="
echo "Installing php${PHPVER}..."

View File

@@ -1,4 +1,6 @@
#!/bin/bash
##makedesc: Install postman (latest)
echo
echo "==============================================="
echo "Installing postman (latest)..."

View File

@@ -1,14 +1,16 @@
#!/bin/bash
VER="1.1.8"
##makedesc: Install rustdesk v1.1.8 (deb)
[ $1 ] && RDVER="$1" || RDVER="1.1.8"
echo
echo "==============================================="
echo "Installing rustdesk v${VER}..."
echo "Installing rustdesk v${RDVER}..."
echo "==============================================="
echo
# https://github.com/rustdesk/rustdesk
sudo apt install libxdo3
wget "http://github.com/rustdesk/rustdesk/releases/download/${VER}/rustdesk-${VER}.deb" -qO /tmp/rustdesk.deb
wget "http://github.com/rustdesk/rustdesk/releases/download/${RDVER}/rustdesk-${RDVER}.deb" -qO /tmp/rustdesk.deb
sudo dpkg -i /tmp/rustdesk.deb
rm /tmp/rustdesk.deb

View File

@@ -1,7 +1,9 @@
#!/bin/bash
##makedesc: Install bunch of software from snap
echo
echo "==============================================="
echo "Installing snap and its software..."
echo "Installing software from snap..."
echo "==============================================="
echo
@@ -19,24 +21,24 @@ if ! installed snapd; then
sudo apt install -y --autoremove snapd gnome-software-plugin-snap
fi
snapi snap-store
# snapi snap-store
snapi telegram-desktop
snapi code
snapi phpstorm
# snapi phpstorm
snapi skype
snapi audacity
snapi flameshot
snapi gtk-common-themes
snapi gtk2-common-themes
snapi kde-frameworks-5-core18
# snapi audacity
# snapi flameshot
# snapi gtk-common-themes
# snapi gtk2-common-themes
# snapi kde-frameworks-5-core18
snapi zoom-client
snapi peek
# https://certbot.eff.org/
snapi certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
# snapi certbot
# sudo ln -s /snap/bin/certbot /usr/bin/certbot
# snapi mysql-workbench-community
# snapi dbeaver-ce
snapi dbeaver-ce
# snapi discord
# snapi obs-studio

View File

@@ -1,7 +1,9 @@
#!/bin/bash
##makedesc: Install syncthing (latest) + ppa
echo
echo "==============================================="
echo "Installing syncthing..."
echo "Installing syncthing (latest) + ppa..."
echo "==============================================="
echo

View File

@@ -1,7 +1,9 @@
#!/bin/bash
##makedesc: Install telebit (latest)
echo
echo "==============================================="
echo "Installing telebit..."
echo "Installing telebit (latest)..."
echo "==============================================="
echo

View File

@@ -1,7 +1,9 @@
#!/bin/bash
##makedesc: Install ulauncher (latest) + ppa
echo
echo "==============================================="
echo "Installing ulauncher..."
echo "Installing ulauncher (latest) + ppa..."
echo "==============================================="
echo

View File

@@ -1,7 +1,9 @@
#!/bin/bash
##makedesc: Install wine (latest) + ppa (focal)
echo
echo "==============================================="
echo "Installing wine..."
echo "Installing wine (latest)..."
echo "==============================================="
echo

View File

@@ -1,7 +1,9 @@
#!/bin/bash
##makedesc: Install zint (latest)
echo
echo "==============================================="
echo "Installing zint..."
echo "Installing zint (latest)..."
echo "==============================================="
echo
@@ -14,7 +16,7 @@ sudo apt install -y --autoremove \
if installed git; then
# 2.9.* ===============================================================================
sudo git clone git://git.code.sf.net/p/zint/code /usr/src/zint
sudo git clone git@github.com:zint/zint.git /usr/src/zint
cd /usr/src/zint
sudo cmake .
sudo make

View File

@@ -1,7 +1,9 @@
#!/bin/bash
##makedesc: Install zsh + omz (latest)
echo
echo "==============================================="
echo "Installing zsh + oh-my-zsh"
echo "Installing zsh + omz (latest)..."
echo "==============================================="
echo

2
packs/lamp.makefile Normal file
View File

@@ -0,0 +1,2 @@
##lamp: Apache + php + mariadb
lamp: apache php mariadb

View File

@@ -1,6 +0,0 @@
#!/bin/bash
set -e
for script in "$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"/install/*.sh
do
. "$script"
done