tak0kadaの何でもノート

発声練習、生存確認用。

医学関連は 医学ノート

デスクトップPCにarch linuxインストールするためのスクリプトたち

結局antergosのインストーラを使ったので供養です。スクリプトだけである程度何とか出来るようになったので多少の成長を認めた。

#!/bin/bash

#----------------------
# reference for all:
#   https://wiki.archlinux.jp/index.php/インストールガイド
#   https://github.com/tukiyo/archlinux-autonistaller
#   https://qiita.com/TsutomuNakamura/items/b60518f8788e5e998744
#----------------------

set -euxo pipefail

CHROOT="arch-chroot /mnt"
PACMAN="$CHROOT pacman -S --noconfirm"
YAY="$CHROOT sudo -u tak0kada yay -S --noconfirm"


#----------------------
# partitioning /dev/sda
# * sda1 : EFI Filesystem : 512MB
# * sda2 : SWAP : 32GB
# * sda3 : EXT4 : the rest
#----------------------
umount /dev/nvme0n1p1 && :
swapoff /dev/nvme0n1p2 && :
umount /dev/nvme0n1p3 && :
gdisk /dev/nvme0n1 <<EOF
o
y
n
1

+512M
EF00
n
2

+32G
8200
n
3




w
y
EOF

#-------------
# format
#-------------
mkfs.vfat -F32 /dev/nvme0n1p1
mkswap /dev/nvme0n1p2
swapon /dev/nvme0n1p2
mkfs.ext4 -F /dev/nvme0n1p3

#-------------
# mount
#-------------
mount /dev/nvme0n1p3 /mnt
mkdir /mnt/boot
mkdir -p /mnt/boot/efi
mount /dev/nvme0n1p1 /mnt/boot/efi

#-------------
# system clock
#-------------
timedatectl set-ntp true

#-------------
# update mirror
#-------------
(cd /etc/pacman.d && curl -L "https://www.archlinux.org/mirrorlist/?country=JP&protocol=http&protocol=https&ip_version=4&use_mirror_status=on" -o mirrorlist)
sed -i -e 's/#Server/Server/' /etc/pacman.d/mirrorlist
sed -i -e 's/## Japan/# Japan/' /etc/pacman.d/mirrorlist

#-------------
# pacstrap
#-------------
pacstrap /mnt base base-devel grub efibootmgr os-prober

#-------------
# genfstab
#-------------
genfstab -U /mnt >> /mnt/etc/fstab

#-----------------
# chroot->timezone
#-----------------
$CHROOT ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
$CHROOT hwclock --systohc --utc

#---------------
# chroot->locale
#---------------
$CHROOT sed -i -e 's/#ja_JP.UTF-8/ja_JP.UTF-8/' /etc/locale.gen
$CHROOT sed -i -e 's/#en_US.UTF-8/en_US.UTF-8/' /etc/locale.gen
echo LANG=en_US.UTF-8 > /mnt/etc/locale.conf
$CHROOT locale-gen

#-------------------
# chroot->bootloader
#-------------------
$CHROOT mkinitcpio -p linux
$CHROOT grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck
$CHROOT sed -i -e 's/^GRUB_TIMEOUT=5$/GRUB_TIMEOUT=1/' /etc/default/grub
$CHROOT grub-mkconfig -o /boot/grub/grub.cfg

#-------------
# chroot->network
#-------------
# dns (statgenet network hack)
cp /etc/resolv.conf /mnt/etc/resolv.conf
# lan

# wifi
$CHROOT pacman -S --noconfirm iw wpa_supplicant dialog networkmanager
$CHROOT systemctl enable NetworkManager

#----------------------
# chroot->antergos-mirrorlist
# reference:
#   https://takuyaokada.hatenablog.com/entry/20190305/1551758426
#----------------------
$CHROOT curl -OL http://repo.antergos.com/antergos/x86_64/antergos-keyring-20170524-1-any.pkg.tar.xz
$CHROOT rm -rf /etc/pacman.d/gnupg
$CHROOT pacman -U --noconfirm antergos-keyring-20170524-1-any.pkg.tar.xz
$CHROOT pacman-key --init antergos archlinux
$CHROOT pacman-key --populate antergos archlinux
(cd /mnt/etc/pacman.d && curl -OL https://raw.githubusercontent.com/Antergos/antergos-packages/master/antergos/antergos-mirrorlist/antergos-mirrorlist)
(cd /mnt/etc && curl -OL https://raw.githubusercontent.com/Antergos/antergos-iso/master/configs/gnome/pacman.conf)

#-------------
# yay
#-------------
$CHROOT pacman-db-upgrade
$CHROOT pacman -Syyu --noconfirm
$CHROOT pacman -S --noconfirm yay

#-------------
# add user
#-------------
$CHROOT useradd -d /home/tak0kada -s /bin/bash -m tak0kada

set +e
RET=1
until [ ${RET} -eq 0 ]; do $CHROOT passwd tak0kada && RET=0; done
set -e
$CHROOT usermod -aG wheel tak0kada
sed -i -e 's/# %wheel ALL=(ALL) ALL$/%wheel ALL=(ALL) ALL/' /mnt/etc/sudoers

#-------------
# VGA Driver
#-------------
$PACMAN nvidia lib32-nvidia-utils

#-------------
# GNOME Desktop
#-------------
$PACMAN gnome-shell gdm
sed -i -e 's/#WaylandEnable=false/WaylandEnable=false/' /mnt/etc/gdm/custom.conf
$CHROOT systemctl enable gdm
# equalize power-management between GDM and GNOME
$PACMAN nvidia-settings
$PACMAN arandr

#-------------
# watchdog
#-------------
$PACMAN rtkit
$CHROOT systemctl enable rtkit-daemon
sed -i -e 's/#DefaultTimeoutStartSec=90s/DefaultTimeoutStartSec=15s/' /mnt/etc/systemd/system.conf
sed -i -e 's/#DefaultTimeoutStopSec=90s/DefaultTimeoutStartSec=15s/' /mnt/etc/systemd/system.conf

#------------------
# terminal emulator
#------------------
$PACMAN xterm

#----------------------
# post installation
#----------------------
$CHROOT yay -Sc --noconfirm
echo "wbox" > /mnt/etc/hostname

set +euxo pipeline
#!/bin/bash

set -euxo pipefail

YAY="yay -S --noconfirm"

#-------------
# gnome
#-------------
$YAY gnome-tweaks gnome-shell-extensions chrome-gnome-shell dconf-editor
$YAY antergos/numix-circle-icon-theme

#-------------
# utility
#-------------
$YAY lilyterm-git peco
$YAY neovim code tmux xsel xclip git svn
$YAY vim-youcompleteme-git python-neovim python2-neovim
$CHROOT pip install cppman
$YAY zeal

$YAY gparted ghex
$YAY tlp lm_sensors
$YAY xournal imagej inkscape gimp kolourpaint simple-scan kazam
$YAY chromium firefox
$YAY libreoffice marp dropbox mendeley file-roller exfat-utils dosfstools libssh openssh
$YAY skypeforlinux-stable-bin
$YAY hplip

$YAY virtualbox virtualbox-guest-modules-arch vagrant
vagrant plugin install vagrant-vbguest vagrant-share
$YAY docker
$CHROOT systemctl enable docker
$YAY jupyter
$YAY gcc clang cmake boost boost-libs openmp openmpi
$YAY python python-pip python-numpy python-matplotlib python-scipy python-sympy python-pandas ipython
$YAY r rstudio-desktop-bin

pacman -Rs xterm
pacman -Sc --noconfirm
set +euxo pipeline
#!/bin/bash

set -eux
CHROOT="arch-chroot /mnt"
# PACMAN="$CHROOT pacman -Sy --noconfirm"
YAY="$CHROOT sudo -u tak0kada yay -Sy --noconfirm"

#-------------
# VGA Driver
#-------------
$PACMAN nvidia lib32-nvidia-utils lib32-nvidia-390xx-utils lib32-nvidia-340xx-utils

#-------------
# GNOME Desktop
#-------------
$PACMAN gnome-shell gdm
sed -i -e 's/#WaylandEnable=false/WaylandEnable=false/' /mnt/etc/gdm/custom.conf
$CHROOT systemctl enable gdm
# GDMとGNOMEで同じ電源管理をする
$CHROOT IFS=$'\n'; for x in $(sudo -u tak0kada gsettings list-recursively org.gnome.settings-daemon.plugins.power); do eval "sudo -u gdm dbus-launch gsettings set $x"; done; unset IFS
$PACMAN gnome-tweaks gnome-shell-extensions
$YAY numix-circle-icon-theme-git
$PACMAN chrome-gnome-shell
$CHROOT nvidia-xconfig

echo "check https://takuyaokada.hatenablog.com/entry/20170327/1490611390"
set +eux