The first step of the configuration is having a working system. We need to perform some basic configurations, just to be able to fully configure the system later on.
To have a working system, you need to do some temporary configuration: follow the Temporary configuration tutorial.
It's time to fully configure your system.
Here it's not our focus to configure specific end-user software, but the base system, including:
- Kernel.
- Main daemons.
- Portage.
- Layman.
- Display manager
- Window manager
- etc... (as much as you can)
Follow the Configurations install tutorial.
For every additional hardware (not supported by default), follow the corresponding guide. The available ones are listed here.
Now the kernel is configured (i.e. the .config
file has been copied to
/usr/src/linux
).
We need to rebuild it to use the new configurations.
Mount the EFI partition under /boot
and run the following:
# _dst_kernel_image="/boot/EFI/gentoo/kernel-hardened-latest.efi"
# cd "/usr/src/linux"
# make && make modules_install
# cp "arch/x86_64/boot/bzImage" "${_dst_kernel_image}"
# systemctl enable "systemd-networkd"
# systemctl start "systemd-networkd"
# systemctl enable "systemd-resolved"
# systemctl start "systemd-resolved"
# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
# systemctl enable "avahi-daemon"
# systemctl start "avahi-daemon"
Create it running:
# mkdir -p /usr/local/portage/{metadata,profiles}
# echo 'local' > /usr/local/portage/profiles/repo_name
# echo 'masters = gentoo' > /usr/local/portage/metadata/layout.conf
# chown -R portage:portage /usr/local/portage
Next, tell portage about the overlay.
Now you should have new use flags, compiling options, etc.., so it's better to recompile the entire system.
# emerge -e "system"
# emerge -e "world"
# emerge "wpa_supplicant"
See here
# emerge pciutils usbutils # To work with `PCI `& `USB` devices.
# emerge parted # To manage partitions.
# emerge "sys-apps/gentoo-functions"
# emerge "dev-util/debugedit"
# emerge "sys-fs/ntfs3g"
# emerge "x11-apps/xrandr" "x11-apps/xdpyinfo"
# emerge "setxkbmap" "xmodmap" "x11-apps/xinput" "xbacklight"
# emerge "xorg-server"
# emerge "x11-misc/lightdm"
# systemctl enable lightdm
# emerge "x11-wm/awesome"
# emerge "app-admin/sudo"
# emerge "app-shells/zsh"
# emerge "media-gfx/feh"
# emerge "media-sound/pavucontrol"
# emerge "x11-misc/xclip" "x11-misc/xsel"
# emerge "x11-terms/rxvt-unicode" "x11-misc/urxvt-perls" "x11-misc/urxvt-font-size"
# emerge "media-fonts/powerline-fonts"
Install all of the following chips:
- GNU/Linux: General purpose scripts for GNU/Linux scripts.
- Gentoo: Scripts specific for Gentoo systems.
Sometimes you need to install (and configure) software specific to a particular device.
The main example is installing drivers..
Here is a list of device-specific software setup tutorials.
# _comment="Personal user for Alessandro Molari" # Replace with yours.
# _username="alem0lars" # Replace with yours.
# useradd -d "/home/${_username}" -s /bin/zsh -c "${_comment}" -m "${_username}"
Create the administrators group:
# groupadd admin
Add your user to groups:
# _username="alem0lars" # Replace with yours.
# gpasswd -a ${_username} admin
# gpasswd -a ${_username} portage
# gpasswd -a ${_username} systemd-journal
# gpasswd -a ${_username} games
Allow admin
to user sudo
:
# echo "%admin ALL=(ALL) ALL" > "/etc/sudoers.d/group-admin"
# chmod 600 "/etc/sudoers.d/group-admin"
Finally, add the ssh
keys for the created user.
If you are using Fizzy, that's simple:
$ _username="alem0lars" # Replace with yours.
$ _vars_name="julia_hck_gentoo" # Replace with yours.
$ _meta_name="meta-user.yml" # Replace with yours.
$ fizzy cfg instantiate --vars-name=${_vars_name} --inst-name="user_${_username}"
$ fizzy sys install --vars-name=${vars_name} --inst-name="user-${_username}" --meta-name="${_meta_name}"
You may want to run the snippet above for every user you want to be configured in your system. I personally run this for alem0lars and root.
See here.
- Backup
- Web clients
- RSS
- IRC
- FTP
- Torrent
- Usenet
- Files management
- Files sharing
- Images tools
- Images viewers
- Images editors
- GTD
- Prototyping
- Diagram tools
- Audio player
- Video player
- Office
- Math
- Signal processing
- Documents viewers
- Text editors
- PaaS tools
- IDE
- Semantic tools
- VCS
- Development tools
- Electronics
- Debuggers
- Fuzzers
- ELF tools
- Carving
- Network analyzers
- Network tools
- Password cracking
- System monitoring
- Clipboard
- Password manager
- Miscellaneous
- Accounting
- GTD
- Screencasts
- Screen sharing
- Docs
- Flashcards
- Cross compile
- C
- D
- Julia
- Android
- JVM
- JSON
- Haskell
- NodeJS
- Perl
- Python
- Ruby
- R
- TeXlive
- ctags
- sqlmap
- Virtualization
- Log tools
- Terminal multiplexer
- Calc
- Mumble
See here.