Compare commits
7 Commits
experiment
...
4677b84a29
| Author | SHA1 | Date | |
|---|---|---|---|
|
4677b84a29
|
|||
|
7008ec36b7
|
|||
|
f2d41885af
|
|||
|
9972fc6d9d
|
|||
|
f7ef85aad9
|
|||
|
3043a41365
|
|||
|
47c1e6d40b
|
4
.dockerignore
Normal file
4
.dockerignore
Normal file
@@ -0,0 +1,4 @@
|
||||
.git
|
||||
.gitignore
|
||||
.dockerignore
|
||||
README.md
|
||||
27
Dockerfile
Normal file
27
Dockerfile
Normal file
@@ -0,0 +1,27 @@
|
||||
FROM ubuntu:22.04
|
||||
|
||||
RUN apt update && \
|
||||
apt -y install \
|
||||
apt-transport-https \
|
||||
apt-utils \
|
||||
bsdmainutils \
|
||||
curl \
|
||||
dialog \
|
||||
grep \
|
||||
make \
|
||||
man \
|
||||
sudo \
|
||||
wget
|
||||
|
||||
RUN adduser ivan \
|
||||
--quiet \
|
||||
--home=/home/ivan \
|
||||
--ingroup=sudo \
|
||||
--disabled-password \
|
||||
--disabled-login
|
||||
|
||||
COPY ./ /home/ivan/my-env
|
||||
RUN echo "ivan ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
USER ivan
|
||||
WORKDIR /home/ivan/my-env
|
||||
7
Makefile
7
Makefile
@@ -1,7 +1,8 @@
|
||||
# Autogenerated at 04.07.2022 22:11 using ./gen-makefile.sh
|
||||
# Autogenerated at 04.07.2022 23:25 using ./gen-makefile.sh
|
||||
|
||||
##lamp: Apache + php + mariadb
|
||||
lamp: apache php mariadb
|
||||
|
||||
##apache: Install apache2 (latest)
|
||||
apache:
|
||||
./install/apache
|
||||
@@ -109,6 +110,6 @@ help: Makefile
|
||||
@echo "Available goals:"
|
||||
@sed -n 's/^##//p' $< | column -t -s ':' | sed -e "s/^/\t/"
|
||||
|
||||
##<goal>_: Same as 'cat ./install/<goal>.sh'
|
||||
##<goal>_: Same as 'cat ./install/<goal>'
|
||||
%_:
|
||||
@cat ./install/$*.sh
|
||||
@cat ./install/$*
|
||||
|
||||
18
README.md
18
README.md
@@ -30,6 +30,9 @@ make help
|
||||
./gen-makefile.sh
|
||||
```
|
||||
|
||||
> I do not recomend to run `make` without arguments.
|
||||
> Use `make help` to look around.
|
||||
|
||||
### Selective straightforward installation
|
||||
|
||||
```shell
|
||||
@@ -72,3 +75,18 @@ mypackY: goalA goalB
|
||||
where:
|
||||
* `mypack*` is the pack name
|
||||
* `goal*` are script names in `./install`
|
||||
|
||||
## Testing in docker
|
||||
|
||||
```shell
|
||||
# switch to repo dir
|
||||
cd my-env
|
||||
|
||||
# build and run container
|
||||
docker build -t myenv . && docker run -it myenv
|
||||
|
||||
# oneliner
|
||||
docker run -it $(docker build -q .)
|
||||
```
|
||||
|
||||
Now you can play around with scripts.
|
||||
|
||||
@@ -4,6 +4,7 @@ echo -e "# Autogenerated at $(date +'%d.%m.%Y %H:%M') using ${BASH_SOURCE[0]}\n"
|
||||
|
||||
for file in ./packs/*; do
|
||||
cat ${file} >> Makefile
|
||||
echo >> Makefile
|
||||
done;
|
||||
|
||||
for file in ./install/*; do
|
||||
@@ -22,12 +23,11 @@ help: Makefile
|
||||
@echo "Available goals:"
|
||||
@sed -n 's/^##//p' $< | column -t -s ':' | sed -e "s/^/\t/"
|
||||
|
||||
##<goal>_: Same as 'cat ./install/<goal>.sh'
|
||||
##<goal>_: Same as 'cat ./install/<goal>'
|
||||
%_:
|
||||
@cat ./install/\$*.sh
|
||||
@cat ./install/\$*
|
||||
EOF
|
||||
|
||||
|
||||
echo "New ./Makefile has been generated!"
|
||||
echo "Old one has been saved as ./Makefile.bak"
|
||||
echo
|
||||
|
||||
@@ -7,6 +7,6 @@ echo "Installing apache2..."
|
||||
echo "==============================================="
|
||||
echo
|
||||
|
||||
sudo apt install -y --autoremove apache2
|
||||
sudo service apache2 restart
|
||||
apache2 -v
|
||||
sudo apt install -y --autoremove apache2 && \
|
||||
sudo systemctl restart apache2 && \
|
||||
apache2 -v
|
||||
|
||||
72
install/apt
72
install/apt
@@ -7,54 +7,56 @@ echo "Installing software from apt..."
|
||||
echo "==============================================="
|
||||
echo
|
||||
|
||||
sudo apt update && sudo apt upgrade -y --autoremove
|
||||
sudo apt install -y --autoremove \
|
||||
sudo apt update && \
|
||||
sudo apt upgrade -y --autoremove
|
||||
|
||||
sudo apt install -y \
|
||||
alien \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
make \
|
||||
cmake \
|
||||
dialog \
|
||||
build-essential \
|
||||
software-properties-common \
|
||||
libaio1 \
|
||||
libssl-dev \
|
||||
libghc-zlib-dev \
|
||||
libcurl4-gnutls-dev \
|
||||
libexpat1-dev \
|
||||
ca-certificates \
|
||||
cmake \
|
||||
curl \
|
||||
dconf-editor \
|
||||
default-jdk \
|
||||
dialog \
|
||||
gettext \
|
||||
gnupg \
|
||||
ubuntu-restricted-extras \
|
||||
unzip \
|
||||
mc \
|
||||
htop \
|
||||
nano \
|
||||
neofetch \
|
||||
default-jdk \
|
||||
terminator \
|
||||
dconf-editor \
|
||||
alien \
|
||||
meld \
|
||||
vlc \
|
||||
gparted \
|
||||
hardinfo \
|
||||
htop \
|
||||
libaio1 \
|
||||
libcurl4-gnutls-dev \
|
||||
libexpat1-dev \
|
||||
libghc-zlib-dev \
|
||||
libreoffice \
|
||||
pulseeffects \
|
||||
lsp-plugins \
|
||||
libssl-dev \
|
||||
lsb-release \
|
||||
lsp-plugins \
|
||||
make \
|
||||
mc \
|
||||
meld \
|
||||
nano \
|
||||
neofetch \
|
||||
net-tools \
|
||||
nmap \
|
||||
p7zip-full \
|
||||
sqlitebrowser
|
||||
# gnome-software \
|
||||
# minder \
|
||||
# redshift \
|
||||
# redshift-gtk \
|
||||
# nodejs \
|
||||
pulseeffects \
|
||||
software-properties-common \
|
||||
sqlitebrowser \
|
||||
terminator \
|
||||
ubuntu-restricted-extras \
|
||||
unzip \
|
||||
vlc \
|
||||
# at \
|
||||
# compiz \
|
||||
# compizconfig-settings-manager \
|
||||
# deepin-screenshot \
|
||||
# earlyoom \
|
||||
# etckeeper \
|
||||
# deepin-screenshot \
|
||||
# geoclue-2.0 \
|
||||
# at
|
||||
# gnome-software \
|
||||
# minder \
|
||||
# nodejs \
|
||||
# redshift \
|
||||
# redshift-gtk
|
||||
|
||||
@@ -9,7 +9,6 @@ echo
|
||||
|
||||
# https://t.me/axenov_blog/251
|
||||
|
||||
# sudo snap install chromium
|
||||
wget "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" -O /tmp/google-chrome-stable_current_amd64.deb
|
||||
sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb
|
||||
rm /tmp/google-chrome-stable_current_amd64.deb
|
||||
wget "https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb" -O /tmp/google-chrome-stable_current_amd64.deb && \
|
||||
sudo dpkg -i /tmp/google-chrome-stable_current_amd64.deb && \
|
||||
rm /tmp/google-chrome-stable_current_amd64.deb
|
||||
|
||||
@@ -11,46 +11,31 @@ installed() {
|
||||
command -v "$1" >/dev/null 2>&1
|
||||
}
|
||||
|
||||
if installed "php"; then
|
||||
if installed "composer"; then
|
||||
echo "WARNING: You already have composer installed - removing to install actual version"
|
||||
sudo apt remove -y --autoremove composer
|
||||
sudo rm -f /bin/composer
|
||||
sudo rm -f /usr/bin/composer
|
||||
sudo rm -f /usr/local/bin/composer
|
||||
sudo rm -rf /usr/src/composer
|
||||
fi
|
||||
sudo mkdir -m 0777 -p /usr/src/composer
|
||||
cd /usr/src/composer
|
||||
# https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md
|
||||
EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
|
||||
sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||||
ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
|
||||
if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then
|
||||
>&2 echo 'ERROR: Invalid installer checksum'
|
||||
rm composer-setup.php
|
||||
exit 1
|
||||
fi
|
||||
php composer-setup.php --quiet
|
||||
sudo cp /usr/src/composer/composer.phar /usr/local/bin/composer
|
||||
cd - >/dev/null
|
||||
sudo rm -rf /usr/src/composer/
|
||||
installed "composer" && composer --version
|
||||
else
|
||||
echo "WARNING: You need to have php installed"
|
||||
!installed "php" && echo "WARNING: You need to have php installed"
|
||||
|
||||
if installed "composer"; then
|
||||
echo "WARNING: Removing current composer to install its actual version"
|
||||
sudo apt remove -y --autoremove composer
|
||||
sudo rm -f /bin/composer
|
||||
sudo rm -f /usr/bin/composer
|
||||
sudo rm -f /usr/local/bin/composer
|
||||
sudo rm -rf /usr/src/composer
|
||||
fi
|
||||
|
||||
# title "Installing composer.phar in home dir..."
|
||||
# cd ~
|
||||
# EXPECTED_SIGNATURE="$(wget -q -O - https://composer.github.io/installer.sig)"
|
||||
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||||
# ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
|
||||
# if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]
|
||||
# then
|
||||
# >&2 echo 'ERROR: Invalid installer signature'
|
||||
# rm composer-setup.php
|
||||
# exit 1
|
||||
# fi
|
||||
# php composer-setup.php --quiet
|
||||
# RESULT=$?
|
||||
# rm composer-setup.php
|
||||
sudo mkdir -m 0777 -p /usr/src/composer
|
||||
cd /usr/src/composer
|
||||
|
||||
# https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md
|
||||
EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
|
||||
sudo php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||||
ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
|
||||
if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then
|
||||
>&2 echo 'ERROR: Invalid installer checksum'
|
||||
rm composer-setup.php
|
||||
exit 1
|
||||
fi
|
||||
php composer-setup.php --quiet
|
||||
sudo cp /usr/src/composer/composer.phar /usr/local/bin/composer
|
||||
cd - >/dev/null
|
||||
sudo rm -rf /usr/src/composer/
|
||||
installed "composer" && composer --version
|
||||
|
||||
Reference in New Issue
Block a user