Merge pull request #9 from lemniskett/changeable-prefix
Req #6: Changeable prefix
This commit is contained in:
commit
cc7273c14c
15
README.md
15
README.md
@ -22,14 +22,14 @@ sudo archbox --create <archlinux tarball download link>
|
|||||||
```
|
```
|
||||||
### Configuring filesystem automount
|
### Configuring filesystem automount
|
||||||
Execute ```/usr/local/share/archbox/bin/archboxinit start``` on boot.
|
Execute ```/usr/local/share/archbox/bin/archboxinit start``` on boot.
|
||||||
If you use systemd, you can create a systemd service with this syntax below :
|
If you use systemd, you can create a systemd service with this syntax below (Assuming the install prefix is ```/usr/local```) :
|
||||||
```
|
```
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Archbox init
|
Description=Archbox init
|
||||||
PartOf=multi-user.target
|
PartOf=multi-user.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
ExecStart=/usr/local/share/archbox/bin/archboxinit start
|
ExecStart=/usr/local/bin/archbox --mount
|
||||||
Type=oneshot
|
Type=oneshot
|
||||||
User=root
|
User=root
|
||||||
|
|
||||||
@ -42,9 +42,9 @@ If you don't use systemd, either create your own init service, or create a @rebo
|
|||||||
### Removing chroot enviroment
|
### Removing chroot enviroment
|
||||||
**IMPORTANT**, Make sure you've unmounted everything in chroot enviroment, it's better to remove the init script and reboot to unmount everything. if you can't reboot for some reason, do :
|
**IMPORTANT**, Make sure you've unmounted everything in chroot enviroment, it's better to remove the init script and reboot to unmount everything. if you can't reboot for some reason, do :
|
||||||
```
|
```
|
||||||
/usr/local/share/archbox/bin/archboxinit stop
|
archbox -u
|
||||||
```
|
```
|
||||||
, then do :
|
then do :
|
||||||
```
|
```
|
||||||
mount
|
mount
|
||||||
```
|
```
|
||||||
@ -55,7 +55,7 @@ To enter chroot, do :
|
|||||||
archbox --enter
|
archbox --enter
|
||||||
```
|
```
|
||||||
### Executing commands in chroot enviroment
|
### Executing commands in chroot enviroment
|
||||||
To execute commands inside chroot envirotment, do :
|
To execute commands inside chroot enviroment, do :
|
||||||
```
|
```
|
||||||
archbox <command>
|
archbox <command>
|
||||||
```
|
```
|
||||||
@ -64,16 +64,17 @@ for example, to update chroot, do :
|
|||||||
archbox sudo pacman -Syu
|
archbox sudo pacman -Syu
|
||||||
```
|
```
|
||||||
### Optional steps
|
### Optional steps
|
||||||
You may want to add this if you don't want to run archbox chroot without password :
|
You may want to add this if you don't want to use Archbox without password (assuming the install prefix is ```/usr/local```) :
|
||||||
#### Sudo
|
#### Sudo
|
||||||
```
|
```
|
||||||
%wheel ALL=(root) NOPASSWD: /usr/local/share/archbox/bin/archbox,/usr/local/share/archbox/bin/copyresolv,/usr/local/share/archbox/bin/remount_run
|
%wheel ALL=(root) NOPASSWD: /usr/local/share/archbox/bin/archbox,/usr/local/share/archbox/bin/copyresolv,/usr/local/share/archbox/bin/remount_run,/usr/local/share/archbox/bin/archboxinit
|
||||||
```
|
```
|
||||||
#### Doas
|
#### Doas
|
||||||
```
|
```
|
||||||
permit nopass :wheel as root cmd /usr/local/share/archbox/bin/archbox
|
permit nopass :wheel as root cmd /usr/local/share/archbox/bin/archbox
|
||||||
permit nopass :wheel as root cmd /usr/local/share/archbox/bin/copyresolv
|
permit nopass :wheel as root cmd /usr/local/share/archbox/bin/copyresolv
|
||||||
permit nopass :wheel as root cmd /usr/local/share/archbox/bin/remount_run
|
permit nopass :wheel as root cmd /usr/local/share/archbox/bin/remount_run
|
||||||
|
permit nopass :wheel as root cmd /usr/local/share/archbox/bin/archboxinit
|
||||||
```
|
```
|
||||||
### Misc
|
### Misc
|
||||||
#### Systemd services
|
#### Systemd services
|
||||||
|
22
archbox.bash
22
archbox.bash
@ -7,7 +7,7 @@ checkdep(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
copyresolv(){
|
copyresolv(){
|
||||||
$PRIV /usr/local/share/archbox/bin/copyresolv
|
$PRIV $PREFIX/share/archbox/bin/copyresolv
|
||||||
}
|
}
|
||||||
|
|
||||||
asroot(){
|
asroot(){
|
||||||
@ -33,6 +33,8 @@ OPTIONS:
|
|||||||
-c, --create URL Creates a chroot enviroment.
|
-c, --create URL Creates a chroot enviroment.
|
||||||
-e, --enter Enters chroot enviroment.
|
-e, --enter Enters chroot enviroment.
|
||||||
-h, --help Displays this help message.
|
-h, --help Displays this help message.
|
||||||
|
-m, --mount Mount Archbox directories.
|
||||||
|
-u, --umount Unmount Archbox directories.
|
||||||
--remount-run Remount /run in chroot enviroment.
|
--remount-run Remount /run in chroot enviroment.
|
||||||
--mount-runtime-only Mount XDG_RUNTIME_DIR to chroot enviroment.
|
--mount-runtime-only Mount XDG_RUNTIME_DIR to chroot enviroment.
|
||||||
|
|
||||||
@ -83,8 +85,8 @@ case $1 in
|
|||||||
checkdep sed
|
checkdep sed
|
||||||
sed -i 's/CheckSpace/#CheckSpace/g' $CHROOT/etc/pacman.conf
|
sed -i 's/CheckSpace/#CheckSpace/g' $CHROOT/etc/pacman.conf
|
||||||
msg "Mounting necessary filesystems..."
|
msg "Mounting necessary filesystems..."
|
||||||
/usr/local/share/archbox/bin/archboxinit start
|
$PREFIX/share/archbox/bin/archboxinit start
|
||||||
cp /usr/local/share/archbox/chroot_setup.bash $CHROOT/chroot_setup
|
cp $PREFIX/share/archbox/chroot_setup.bash $CHROOT/chroot_setup
|
||||||
echo $USER > /tmp/archbox_user
|
echo $USER > /tmp/archbox_user
|
||||||
chroot $CHROOT /bin/bash -c "/chroot_setup"
|
chroot $CHROOT /bin/bash -c "/chroot_setup"
|
||||||
exit $?
|
exit $?
|
||||||
@ -92,15 +94,21 @@ case $1 in
|
|||||||
-e|--enter)
|
-e|--enter)
|
||||||
storeenv
|
storeenv
|
||||||
copyresolv
|
copyresolv
|
||||||
$PRIV /usr/local/share/archbox/bin/archbox enter
|
$PRIV $PREFIX/share/archbox/bin/archbox enter
|
||||||
exit $?
|
exit $?
|
||||||
;;
|
;;
|
||||||
|
-m|--mount)
|
||||||
|
$PRIV $PREFIX/share/archbox/bin/archboxinit start
|
||||||
|
;;
|
||||||
|
-u|--umount)
|
||||||
|
$PRIV $PREFIX/share/archbox/bin/archboxinit stop
|
||||||
|
;;
|
||||||
--remount-run)
|
--remount-run)
|
||||||
$PRIV /usr/local/share/archbox/bin/remount_run
|
$PRIV $PREFIX/share/archbox/bin/remount_run
|
||||||
exit $?
|
exit $?
|
||||||
;;
|
;;
|
||||||
--mount-runtime-only)
|
--mount-runtime-only)
|
||||||
$PRIV /usr/local/share/archbox/bin/remount_run runtimeonly
|
$PRIV $PREFIX/share/archbox/bin/remount_run runtimeonly
|
||||||
exit $?
|
exit $?
|
||||||
;;
|
;;
|
||||||
-h|--help)
|
-h|--help)
|
||||||
@ -117,7 +125,7 @@ case $1 in
|
|||||||
*)
|
*)
|
||||||
storeenv
|
storeenv
|
||||||
copyresolv
|
copyresolv
|
||||||
$PRIV /usr/local/share/archbox/bin/archbox $@
|
$PRIV $PREFIX/share/archbox/bin/archbox $@
|
||||||
exit $?
|
exit $?
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -46,4 +46,4 @@ while true; do
|
|||||||
passwd $CHROOT_USER && break
|
passwd $CHROOT_USER && break
|
||||||
done
|
done
|
||||||
sed -i 's/# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers
|
sed -i 's/# %wheel ALL=(ALL) NOPASSWD: ALL/%wheel ALL=(ALL) NOPASSWD: ALL/g' /etc/sudoers
|
||||||
echo "Don't forget to run '/usr/local/share/archbox/bin/archboxinit start' in host on boot"
|
echo "Don't forget to run \"archbox --mount\" in host on boot"
|
||||||
|
@ -3,4 +3,4 @@
|
|||||||
source /etc/archbox.conf
|
source /etc/archbox.conf
|
||||||
|
|
||||||
startx
|
startx
|
||||||
$PRIV /usr/local/share/archbox/bin/remount_run killxdg
|
$PRIV $PREFIX/share/archbox/bin/remount_run killxdg
|
||||||
|
26
install.sh
26
install.sh
@ -1,18 +1,26 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
mkdir -p /usr/local/share/archbox/bin
|
PREFIX="/usr/local"
|
||||||
install -v -D -m 755 ./archbox.bash /usr/local/bin/archbox
|
|
||||||
install -v -D -m 755 ./archbox-desktop.bash /usr/local/bin/archbox-desktop
|
mkdir -p $PREFIX/share/archbox/bin
|
||||||
|
install -v -D -m 755 ./archbox.bash $PREFIX/bin/archbox
|
||||||
|
install -v -D -m 755 ./archbox-desktop.bash $PREFIX/bin/archbox-desktop
|
||||||
[[ ! -e /etc/archbox.conf ]] && install -v -D -m 755 ./archbox.conf /etc/archbox.conf
|
[[ ! -e /etc/archbox.conf ]] && install -v -D -m 755 ./archbox.conf /etc/archbox.conf
|
||||||
install -v -D -m 755 ./copyresolv.bash /usr/local/share/archbox/bin/copyresolv
|
install -v -D -m 755 ./copyresolv.bash $PREFIX/share/archbox/bin/copyresolv
|
||||||
install -v -D -m 755 ./archboxcommand.bash /usr/local/share/archbox/bin/archbox
|
install -v -D -m 755 ./archboxcommand.bash $PREFIX/share/archbox/bin/archbox
|
||||||
install -v -D -m 755 ./remount_run.bash /usr/local/share/archbox/bin/remount_run
|
install -v -D -m 755 ./remount_run.bash $PREFIX/share/archbox/bin/remount_run
|
||||||
install -v -D -m 755 ./chroot_setup.bash /usr/local/share/archbox/chroot_setup.bash
|
install -v -D -m 755 ./chroot_setup.bash $PREFIX/share/archbox/chroot_setup.bash
|
||||||
install -v -D -m 755 ./archboxinit.bash /usr/local/share/archbox/bin/archboxinit
|
install -v -D -m 755 ./archboxinit.bash $PREFIX/share/archbox/bin/archboxinit
|
||||||
|
|
||||||
|
cat << EOF >> /etc/archbox.conf
|
||||||
|
|
||||||
|
# Don't change this unless you know what you're doing.
|
||||||
|
PREFIX="$PREFIX"
|
||||||
|
EOF
|
||||||
[[ -z $1 ]] && exit 0
|
[[ -z $1 ]] && exit 0
|
||||||
|
|
||||||
if [ $1 = "--exp" ]; then
|
if [ $1 = "--exp" ]; then
|
||||||
install -v -D -m 755 ./exp/startx-killxdg.bash /usr/local/bin/startx-killxdg
|
install -v -D -m 755 ./exp/startx-killxdg.bash $PREFIX/bin/startx-killxdg
|
||||||
else
|
else
|
||||||
echo "Unknown install option: $1"
|
echo "Unknown install option: $1"
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user