Some fixes

This commit is contained in:
Syahrial Agni Prasetya 2021-05-28 15:17:42 +07:00
parent 72ab95d4bf
commit 8344baa786
No known key found for this signature in database
GPG Key ID: 46F88749C8C79383
8 changed files with 34 additions and 31 deletions

View File

@ -86,14 +86,14 @@ This isn't actually using systemd to start services, rather it parses systemd .s
##### Autostart services
To enable service on host boot, edit `/etc/archbox.conf` :
```
SERVICES=( vmware-networks-configuration vmware-networks vmware-usbarbitrator nginx )
SERVICES="vmware-networks-configuration vmware-networks vmware-usbarbitrator nginx"
```
Keep in mind that this doesn't resolve service dependencies, so you may need to enable the dependencies manually. you can use ```archboxctl desc <service>``` to read the .service file
##### Post-exec delay
Services are asynchronously started, if some services have some issues when starting together you may want to add post-exec delay.
```
SERVICES=( php-fpm:3 nginx )
SERVICES="php-fpm:3 nginx"
```
This will add 3 seconds delay after executing php-fpm.
@ -163,6 +163,12 @@ sudo ln -s /usr /run/current-system/sw
```
make sure /run isn't mounted.
##### Archbox didn't recognize commands
Add ```PATH``` variable to ```/etc/archbox.conf```, for example:
```
ENV_VAR="PATH=/usr/bin:/usr/local/bin"
```
#### PulseAudio refused to connect
This can be caused by different dbus machine-id between chroot and host, copying ```/etc/machine-id``` from host to chroot should do the job.
#### XDG_RUNTIME_DIR is not visible in Archbox

View File

@ -27,14 +27,14 @@ ENV_VAR="${ENV_VAR:-}"
# Parse a Systemd service and executes it on boot, order matters, for example:
#
# SERVICES=( vmware-networks-configuration vmware-networks vmware-usbarbitrator php-fpm:3 nginx )
# SERVICES="vmware-networks-configuration vmware-networks vmware-usbarbitrator php-fpm:3 nginx"
#
# Keep in mind that this doesn't resolve service dependencies, so you may need to
# enable the dependencies manually.
SERVICES=( ${SERVICES:-} )
SERVICES="${SERVICES:-}"
# Share other host directories into Archbox, absolute path needed.
SHARED_FOLDER=( ${SHARED_FOLDERS:-/home} )
SHARED_FOLDER="${SHARED_FOLDERS:-/home}"
EOF
}

View File

@ -2,8 +2,6 @@
. /etc/archbox.conf
set --
# Text colors/formatting
red="\033[38;5;1"
green="\033[38;5;2"
@ -16,11 +14,11 @@ err(){
}
msg(){
printf "${green}${bold}%s${reset}\n" "==> $*" 1>&2
printf "${green}${bold}%s${reset}\n" "==> $*"
}
checkdep(){
command -v $1 2>/dev/null || err "Install $1!"
command -v $1 >/dev/null 2>&1 || err "Install $1!"
}
asroot(){
@ -71,7 +69,8 @@ fetch_tarball(){
case $1 in
-c|--create)
asroot
[ $2 ] && err "Specify the link of Arch Linux bootstrap tarball!"
echo $2
[ ! $2 ] && err "Specify the link of Arch Linux bootstrap tarball!"
msg "Creating chroot directory..."
mkdir -p $INSTALL_PATH
cd $INSTALL_PATH
@ -91,7 +90,7 @@ case $1 in
sed -i "s/CheckSpace/#CheckSpace/g" "${CHROOT}"/etc/pacman.conf
msg "Mounting necessary filesystems..."
"${PREFIX}"/share/archbox/bin/init start
cp "${PREFIX}"/share/archbox/chroot_setup.bash "${CHROOT}"/chroot_setup
cp "${PREFIX}"/share/archbox/chroot_setup "${CHROOT}"/chroot_setup
printf "%s" $ARCHBOX_USER > /tmp/archbox_user
chroot $CHROOT /bin/sh /chroot_setup
exit $?

View File

@ -2,8 +2,6 @@
. /etc/archbox.conf >/dev/null 2>&1
set --
# Text colors/formatting
red="\033[38;5;1"
green="\033[38;5;2"
@ -31,7 +29,7 @@ install_desktop(){
}
checkdep(){
command -v $1 2>/dev/null || err "Install $1!"
command -v $1 >/dev/null 2>&1 || err "Install $1!"
}
help_text(){

View File

@ -1,7 +1,3 @@
. /etc/archbox.conf >/dev/null 2>&1
set --
# Text colors/formatting
red="\033[38;5;1"
green="\033[38;5;2"
@ -23,13 +19,16 @@ msg "Initializing pacman keyrings..."
pacman-key --init
pacman-key --populate archlinux
msg "Installing essential packages..."
pacman -Syu base base-devel xorg pulseaudio nano --noconfirm
pacman -Syu base base-devel nano --noconfirm
printf "%s" "Do you want to use GUI apps? (y/n) "
read INSTALL_GUI
[ "$INSTALL_GUI" = "y" ] && pacman -Syu xorg pulseaudio --noconfirm
msg "Installing archboxctl..."
mkdir -p /usr/local/bin
curl https://raw.githubusercontent.com/lemniskett/archboxctl/master/archboxctl.bash > /usr/local/bin/archboxctl
chmod 755 /usr/local/bin/archboxctl
msg "Setting up locale..."
printf "%s\n" "Uncomment needed locale, enter to continue"
printf "%s" "Uncomment needed locale, enter to continue"
read
nano /etc/locale.gen
locale-gen
@ -38,6 +37,7 @@ printf "%s\n" "Enter your timezone, for example : \"Asia/Jakarta\""
while true; do
read TIMEZONE \
&& [ -e /usr/share/zoneinfo/$TIMEZONE ] \
&& rm -f /etc/localtime \
&& ln -s /usr/share/zoneinfo/$TIMEZONE /etc/localtime \
&& break \
|| printf "%s\n" "Timezone not found, enter it again."

View File

@ -7,4 +7,4 @@ REQ_ENV="DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS} XDG_RUNTIME_DIR=${
ENV="$REQ_ENV $ENV_VAR"
COMMAND="$@"
chroot $CHROOT /sbin/env $ENV /bin/su $ARCHBOX_USER
chroot $CHROOT /usr/bin/env $ENV /bin/su $ARCHBOX_USER

View File

@ -7,4 +7,4 @@ REQ_ENV="DBUS_SESSION_BUS_ADDRESS=${DBUS_SESSION_BUS_ADDRESS} XDG_RUNTIME_DIR=${
ENV="$REQ_ENV $ENV_VAR"
COMMAND="$@"
chroot $CHROOT /bin/su -c "env $ENV $COMMAND" $ARCHBOX_USER
chroot $CHROOT /bin/su -c "/usr/bin/env $ENV $COMMAND" $ARCHBOX_USER

View File

@ -18,19 +18,19 @@ msg(){
}
rbind(){
if mount | grep "${CHROOT}"${1} >/dev/null 2>&1; then
if [ "$(mount | grep "${CHROOT}"${1} >/dev/null 2>&1)" ]; then
msg "${CHROOT}${1} already mounted."
else
mount -R $1 "${CHROOT}"${1}
msg "${CHROOT}${1} mounted!"
fi
if [ $2 = "make-rslave" ]; then
if [ "$2" = "make-rslave" ]; then
mount --make-rslave ${CHROOT}${1}
fi
}
rbind_diff() {
if mount | grep "${CHROOT}"${2}; then
if [ "$(mount | grep "${CHROOT}"${2})" ]; then
msg "$CHROOT$2 already mounted."
else
mount -R $1 "${CHROOT}"${2}
@ -39,18 +39,18 @@ rbind_diff() {
}
bindproc() {
if mount | grep "${CHROOT}"/proc; then
if [ "$(mount | grep "${CHROOT}"/proc)" ]; then
msg "${CHROOT}/proc already mounted."
else
mount -t proc /proc "${CHROOT}"/proc
msg "${CHROOT}/proc mounted!")
msg "${CHROOT}/proc mounted!"
fi
}
rmbind() {
umount_args=-R
[ $LAZY_UMOUNT = "yes" ] && umount_args=-Rl
if mount | grep "${CHROOT}"${1}; then
[ "$LAZY_UMOUNT" = "yes" ] && umount_args=-Rl
if [ "$(mount | grep "${CHROOT}"${1})" ]; then
umount $umount_args "${CHROOT}"${1}
msg "${CHROOT}${1} unmounted!"
fi
@ -62,8 +62,8 @@ case $1 in
rbind /tmp
rbind /sys make-rslave
rbind /dev make-rslave
[ $MOUNT_RUN = "yes" ] && rbind /run
if [ $MOUNT_MOD = "yes" ]; then
[ "$MOUNT_RUN" = "yes" ] && rbind /run
if [ "$MOUNT_MOD" = "yes" ]; then
rbind "$(readlink -f /lib/modules)"
rbind /boot
fi