This repo consists of two scripts and some submodules.
- Arch-installer - a script to do the basic arch install steps -- not recommended to newbies.
- package-installer - a script frontend to the Makefile which will install some meta packages and my setup repos for various things. Xorg, Xmonad, emacs, dotfiles, apps, etc.
Simply, I just wanted a way to replicate my install of Arch Linux, but simply.
From what I understand, the typical way to do this is to use Arch packages and by creating a local package repo, or putting one on the web.
I've gone down that path. It's complicated and time consuming, and has a few problems simply because of the philosophy behind packages and the AUR.
I have a few packages I prefer that come from the AUR such as
vivaldi and mu4e.
So far, I have not
figured out how to makechrootpkg from
devtools
to create a package that I can include in
my local repo. It has complications of it's own. To build anything from AUR
You must install all dependencies into your chroot first.
Another problem, for me, was that some packages are not meta-packages, but package groups package groups like xorg, xorg-apps, xfce, gnome, and so forth cannot be installed via dependencies in a PKGBUILD. Either you need to find out what packages are in them and add each one to your packages explicitly or you can just install them separately in your script. I chose the latter because I don't like having to maintain unecessary things.
So, this is set of scripts is simple and obvious. I don't build any packages. All I have are lightweight MetaPackages. None of them do anything but have dependencies. There is nothing to build or deploy. Just check out this repo and run one script or another. You can use the Makefile directly to install the various parts instead of using the install-packages script which is just a checklist dialog that calls make.
Depending on what you decide to install, dependencies like xorg are handled in one obvious
and clear place. The Makefile. The same goes for the AUR. The Makefile in arch-pkgs uses
makepkg -si
to install it's meta-packages. The Makefile here uses yay -S
for packages in
the AUR. Super simple, no moving parts, and complexities are in the systems where they belong, not here. The Makefile is super simple and makes it very easy to install groups of the three types
of things. Meta-packages, AUR packages and repositories with make.
Essentially make something
will install something or a group of somethings. Look at the
Makefile if you are curious.
├── README.md ├── Makefile ├── install-arch ├── install-packages ├── arch-pkgs │ ├── README.md │ ├── Makefile │ ├── audio │ ├── devel │ ├── mobile-studio-pro │ ├── natural-language │ ├── necessities │ ├── tablet │ ├── X11 │ ├── X11-apps │ ├── Xfce │ ├── Xmonad │ └── yay ├── bc-extensions │ ├── README.md │ ├── Makefile │ ├── array.bc │ ├── extensions.bc │ ├── misc.bc │ ├── primes.bc │ └── rand.bc ├── dotfiles │ ├── README.md │ ├── Makefile │ ├── hidpi.txt │ ├── bin │ │ ├── bcl │ │ ├── cellwriter@point │ │ ├── emacsn │ │ ├── flash-ergodox │ │ ├── new-re-frame-proj │ │ ├── serve-jekyll │ │ └── switch-kbd │ └── xcursor.theme ├── emacs-setup │ ├── README.md │ ├── Makefile │ ├── elisp │ │ ├── bytecompiledir.el │ │ ├── config │ │ │ ├── Configuration files for everything. │ │ ├── extensions │ │ │ ├── Lisp extensions that have no package. │ │ ├── packages.el │ │ ├── setup.el │ │ ├── themes │ │ │ ├── Oh so many themes. │ │ └── vars.el │ ├── fonts │ ├── lein-profiles-example.clj │ └── mbsyncrc ├── xmonad-log-applet │ ├── README.md │ ├── AUTHORS.md │ ├── autogen.sh │ ├── configure.ac │ └── .... └── xmonad-setup ├── README.md ├── Makefile ├── ocean_park_114.jpg ├── xmonad.desktop └── xmonad.start
32 directories, 364 files
- 2 shell scripts, Makefiles everywhere.
- install-arch - to install arch from a Live USB
- install-packages - Dialog checklist frontend to the Makefil. Install packages from the offical repos or the AUR, from local PKGBUILDs as well as some of my repositories.
- arch-pkgs - My Arch Linux meta package repo
- dotfiles - My dotfiles and scripts repo
- bc-extensions - My bc extensions repo
- emacs-setup - My emacs configuration repo
- xmonad-setp - My Xmonad configuration repo
- xmonad-log-applet - My repo to build xmonad-log-applet which allows xmonad to communicate with the panel/toolbar of xfce, gnome, kde, or mate.
-
boot your Arch Linux Live USB
-
get an internet connection. wifi-menu is easy if you have wifi.
-
curl the install-arch script from this repo.
curl https://raw.githubusercontent.com/EricGebhart/Arch-Setup/master/install-arch > ./install-arch
-
Make it executable:
chmod a+x ./install-arch
-
Get help
./install-arch -h
curl https://raw.githubusercontent.com/EricGebhart/Arch-Setup/master/install-arch > ./install-archchmod a+x ./install-arch
./install-arch -h` -
Partition and possibly format your drive or not.
Be Careful, have fun.
- Run install-arch
- Something like this to install on a drive that is partitioned and formatted accordingly.
./install-arch -e <efi partition> -r <root partition> -u <user>
./install-arch -e /dev/sda1 -r /dev/sda2 -u Sherlock
- or if you are ok with automatic partitioning and formatting.
./install-arch -d /dev/sda -u Sherlock
-
The install-arch script installed Network manager.
-
start and enable the Network manager.
sudo systemctl enable NetworkManager; systemctl start NetworkManager
-
nmtui
the NCurses based console guinmcli
the command line.
Run install packages : ./install-packages
You are on your own from here...
To clone this repo so you can just do the install-packages script do this.
git clone --remote-submodules --recursive-submodules http://github.com/ericgebhart/Arch-Setup
Or more likely, you should just fork this repo and add what you want. If you feel like sharing, do a pull request.
This is a basic arch installer. There isn't much to installing arch as it is, but after doing it a bunch of times it's nice to have something that automates things a bit.
If you haven't installed Arch Linux manually a few times, following the instructions in the instllation guide Then this script is possibly not for you. Go earn some experience points over there first.
I sort of like doing the Arch install manually, it's not like it's too difficult. Some of it can be a bit tedious but the most important things to me are really remembering the basic pacstrap packages I need, creating my user account with wheel & sudo and then cloning this repo with submodules into my home directory so I can install the rest of the system after reboot.
Basically, if you like, use install-arch to install Arch from a live USB. Then, after reboot, come to this Arch-Setup folder in the admin user's home directory, installed by the install-arch and run install-packages to finish up installation and personalization of your system.
Really, doing it all manually is not rocket science unless you are a newbie.
- fdisk/parted,
- mkfs,
- mounts
- pacstrap
- genfstab
- arch-chroot
- locale
- zoneinfo
- boot-ctl
- conf
- entries/entry
- passwd
- exit
- umount
- reboot
For me the important bits are these additions to the standard instructions. I always seem to forget somthing here.
# install the base system pieces I want and need to get a basic install.
pacstrap /mnt base linux linux-firmware base-devel devtools sudo network-manager git zsh dialog
# create my userid with wheel then go edit /etc/sudoers to give sudo to wheel.
arch-chroot /mnt useradd -mU -s /usr/bin/zsh -G wheel,uucp,video,audio,storage,games,input "$user"
# fetch this repo into my new user account so I can install the rest of my stuff
# with my package-installer after reboot.
arch-chroot -u "$user" /mnt git clone --remote-submodules --recurse-submodules https://github.com/ericgebhart/Arch-Setup
This script installs my metapackages and my personal configurations and scripts.
A checklist is provided for what you might want to install from my packages and repos.
Basic stuff like zsh dotfiles, .Xresources, my ~/bin folder, and emacs setup are in Necessities. After that there are some extra packages if you choose tablet or mobile studio pro. High dpi is a group of settings which are added to .Xresources by the dotfiles repo if you ask for it. I need them for my Wacom mobile studio pro and another computer which uses a wacom cintiq for a monitor. Both have resolutions around 3840x2160, the text is super tiny and the mouse pointer is invisible without these settings.
Xorg and friends are always installed if you choose Xmonad or Xfce. Dependencies between these choices is managed in the Makefiles.
- arch-pkgs - My arch meta-packages.
The necessities package gets installed no matter what. Everything depends on it. It includes all the basic things you might need.
- necessities - An Arch pkgbuild with various basic tools, wget, ssh, traceroute, emacs, vi, nano, etc..
- dotfiles - My dotfiles, zsh, Xresources, and miscellaneous other things that mostly go into my ~/bin directory. Includes a high DPI udate to .Xresources if chosen.
- bc-extensions which is a set of extensions for bc.
- emacs-setup - My emacs setup which includes isync and mu4e for email. yay - An installer for packages in the AUR.
- xmonad-setup - My Xmonad configuration.
- xmonad-log-applet - An applet that allows communication between XMonad and the panel which comes with xfce4, gnome, kde and mate.
Arch Linux; Creating an automated install and personal Setup