1
0
mirror of https://gitlab.com/JKANetwork/JKArch.git synced 2026-02-16 10:11:32 +01:00

New log file. Testing a big bug with lightdm

This commit is contained in:
kprkpr
2016-11-05 13:10:50 +01:00
parent e6dd6aca7e
commit c4d359b2eb

View File

@@ -45,8 +45,31 @@ fatalerror "$(T "Pacman error, problems in repositories, apologizes. You have to
fi
}
function inchroot {
chroot /mnt /bin/bash -c "$*"
function execl { ##This function logs the command executed
local command
echo "------" >> "/tmp/install.log"
if [[ $1 != "chroot" ]];then #If it runs outside chroot
command="$1"
for (( i=2; i<=$#; i++ ))
do
command="$command $(echo $* | cut -f$i -d" ")"
done
echo "$command" >> "/tmp/install.log"
$command
else #else: If it runs in chroot
for (( i=2; i<=$#; i++ ))
do
command="$command $(echo $* | cut -f$i -d" ")"
done
echo "(In the install partition/chroot) $command" >> "/tmp/install.log"
chroot /mnt /bin/bash -c "$command"
fi
if [[ $? == 0 ]];then
echo "Result Ok " >> "/tmp/install.log"
else
echo "Result Error: Code $?" >> "/tmp/install.log"
fi
}
function optstate {
@@ -277,31 +300,31 @@ clear
tput setaf 2 ; echo "$(T "Installing system, this can take about 10 minutes, wait")" ; tput setaf 9
sleep 2
tput setaf 2 ; echo "$(T "Formatting and mounting partitions")" ; tput setaf 9
$formatoraiz /dev/$particionraiz
execl $formatoraiz /dev/$particionraiz
e2label /dev/$particionraiz "JKArch"
mount /dev/$particionraiz /mnt/
execl mount /dev/$particionraiz /mnt/
if [[ $particionhome ]];then
$formatohome /dev/$particionhome
execl $formatohome /dev/$particionhome
mkdir -p /mnt/home/
mount /dev/$particionhome /mnt/home/
execl mount /dev/$particionhome /mnt/home/
fi
if [[ $partefi ]];then
mkdir -p /mnt/boot/efi
mount /dev/$partefi /mnt/boot/efi/
execl mount /dev/$partefi /mnt/boot/efi/
fi
if [[ $isoffline = "0" ]];then
wget -nv https://gitlab.com/JKANetwork/JKArch/raw/master/archinstall/pacman.conf -O pacman.conf
isanetworkerror #Comprueba si hubo un error de descarga
tput setaf 2 ; echo "$(T "Optimizing download")" ; tput setaf 9
reflector --verbose -l 6 --sort rate --save /etc/pacman.d/mirrorlist
execl reflector --verbose -l 6 --sort rate --save /etc/pacman.d/mirrorlist
tput setaf 2 ; echo "$(T "Downloading")" ; tput setaf 9
pacstrap -C pacman.conf /mnt/ base btrfs-progs jkarch-mirrorlist
execl pacstrap -C pacman.conf /mnt/ base btrfs-progs jkarch-mirrorlist
pacmanerror
mv pacman.conf /mnt/etc/pacman.conf
fi
if [[ $isoffline = "1" ]];then
tput setaf 2 ; echo "$(T "Installing packages")..." ; tput setaf 9
pacstrap -C pacman-offline.conf /mnt/ base btrfs-progs jkarch-mirrorlist
execl pacstrap -C pacman-offline.conf /mnt/ base btrfs-progs jkarch-mirrorlist
mv pacman-offline.conf /mnt/etc/pacman.conf #Move pacman.conf (offline) to pacman chroot location
fi
@@ -332,7 +355,7 @@ if [[ $isoffline = 1 ]];then
mount --bind /run/archiso/bootmnt/ /mnt/run/archiso/bootmnt/ # CD bind
fi
inchroot pacman -Syu jka-toolkit git wget netctl iw wpa_supplicant dialog sudo alsa-utils dosfstools ntfs-3g bash-completion --noconfirm --needed #Install base packages
execl chroot pacman -Syu jka-toolkit git wget netctl iw wpa_supplicant dialog sudo alsa-utils dosfstools ntfs-3g bash-completion --noconfirm --needed #Install base packages
}
### Date and language ###
@@ -362,11 +385,11 @@ echo "LANG=$opclang" > /mnt/etc/locale.conf
echo "LANGUAGE=$opclang" >> /mnt/etc/locale.conf
echo "LC_COLLATE=$opclang" >> /mnt/etc/locale.conf
echo "KEYMAP=$langabr" > /mnt/etc/vconsole.conf
inchroot locale-gen
execl chroot locale-gen
clear
echo "$(T "Now select your timezone for adjusting the clock")"
while [[ $NEW_TIMEZONE == "" ]];do
NEW_TIMEZONE=$(inchroot tzselect)
NEW_TIMEZONE=$(execl chroot tzselect)
opt=`dialog --stdout --nocancel --menu "$(T "Your timezone:") $NEW_TIMEZONE" 0 0 4 1 "$(T "It's right")" 2 "$(T "No,edit")"`
case $opt in
2) NEW_TIMEZONE="";;
@@ -374,13 +397,13 @@ esac
done
test -n "$NEW_TIMEZONE" && cp -fp /mnt/usr/share/zoneinfo/"$NEW_TIMEZONE" /mnt/etc/localtime
inchroot hwclock --systohc --utc
inchroot pacman -S ntp --noconfirm
inchroot systemctl enable ntpd
execl chroot hwclock --systohc --utc
execl chroot pacman -S ntp --noconfirm
execl chroot systemctl enable ntpd
if [[ $isoffline = 0 ]];then #Only sync if its online
echo "$(T "Syncing hour to internet")";
inchroot ntpd -qg
inchroot hwclock -w
execl chroot ntpd -qg
execl chroot hwclock -w
else
echo "Clock will not be okay until restart and configure manually because you dont have net"
fi
@@ -397,7 +420,7 @@ fi
clear
#Aqui hay que añadir los comandos para crear un usuario, aunque esto correrá dentro del chroot y no aqui
nameuser=`dialog --stdout --inputbox "Ahora crearemos tu usuario \nNombre para tu usuario:" 10 50`
inchroot useradd -m -G wheel -s /bin/bash $nameuser
execl chroot useradd -m -G wheel -s /bin/bash $nameuser
until [[ $pass1 = $pass2 && $pass1 != "" ]]
do
pass1=`dialog --stdout --insecure --passwordbox "$(T "Password for ") $nameuser" 9 50`
@@ -406,13 +429,13 @@ do
mostrardialog "$(T "Password")" "$(T "Passwords do not match")"
fi
done
echo "${nameuser}:${pass1}" | inchroot chpasswd
echo "${nameuser}:${pass1}" | execl chroot chpasswd
pass1="" #Reiniciar pass1, por si hace falta de nuevo que el until funcione
#See if user wants to edit root password or not.
opt=`dialog --stdout --nocancel --menu "$(T "You want to edit root (admin) password or set same as user?")" 0 0 4 1 "$(T "Same as user")" 2 "$(T "Edit")"`
case $opt in
1) echo "root:${pass2}" | inchroot chpasswd;;
1) echo "root:${pass2}" | execl chroot chpasswd;;
2) until [[ $pass1 = $pass2 && $pass1 != "" ]]
do
pass1=`dialog --stdout --insecure --passwordbox "$(T "Password for ") . root" 9 50`
@@ -421,7 +444,7 @@ case $opt in
mostrardialog "$(T "Password")" "$(T "Passwords do not match")"
fi
done
echo "root:${pass1}" | inchroot chpasswd
echo "root:${pass1}" | execl chroot chpasswd
pass1="" #Reiniciar pass1, por si hace falta de nuevo que el until funcione
;;
esac
@@ -430,7 +453,7 @@ esac
sed -i "s/\# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/g" /mnt/etc/sudoers
#Modificar gksu si lleva una sesion grafica
if [[ $optentorno != "6" ]];then
inchroot gconftool-2 --set /apps/gksu/sudo-mode --type=bool true --owner=$(echo $nameuser)
execl chroot gconftool-2 --set /apps/gksu/sudo-mode --type=bool true --owner=$(echo $nameuser)
fi
}
@@ -438,16 +461,16 @@ function graficos {
optgrafica=`dialog --stdout --nocancel --scrollbar --menu "$(T "What is your graphics card brand?")" 0 0 6 1 "Nvidia" 2 "AMD/ATI" 3 "Intel" 4 "VIA" 5 "Estoy usando VirtualBox" 6 "Estoy usando VMWare" 7 "No se la marca/Otra (Se instalaran todos los drivers graficos estandar)"`
case $optgrafica in
1) inchroot pacman -S xf86-video-nouveau xf86-video-nv libva-vdpau-driver mesa-vdpau --noconfirm;;
2) inchroot pacman -S xf86-video-ati xf86-video-amdgpu libva-mesa-driver libva-vdpau-driver mesa-vdpau --noconfirm;;
3) inchroot pacman -S xf86-video-intel libva-intel-driver libvdpau-va-gl --noconfirm;;
4) inchroot pacman -S xf86-video-openchrome --noconfirm;;
5) inchroot pacman -S virtualbox-guest-utils virtualbox-guest-modules-arch --noconfirm;;
6) inchroot pacman -S xf86-video-vmware xf86-input-vmmouse open-vm-tools --noconfirm;;
7) inchroot pacman -S $(inchroot pacman -Ssq xf86-video-*) --noconfirm;;
1) execl chroot pacman -S xf86-video-nouveau xf86-video-nv libva-vdpau-driver mesa-vdpau --noconfirm;;
2) execl chroot pacman -S xf86-video-ati xf86-video-amdgpu libva-mesa-driver libva-vdpau-driver mesa-vdpau --noconfirm;;
3) execl chroot pacman -S xf86-video-intel libva-intel-driver libvdpau-va-gl --noconfirm;;
4) execl chroot pacman -S xf86-video-openchrome --noconfirm;;
5) execl chroot pacman -S virtualbox-guest-utils virtualbox-guest-modules-arch --noconfirm;;
6) execl chroot pacman -S xf86-video-vmware xf86-input-vmmouse open-vm-tools --noconfirm;;
7) execl chroot pacman -S $(execl chroot pacman -Ssq xf86-video-*) --noconfirm;;
esac
#Instalar siempre la estandar, por se acaso
inchroot pacman -S xf86-video-vesa mesa-libgl --noconfirm
execl chroot pacman -S xf86-video-vesa mesa-libgl --noconfirm
}
function programasguiuser {
@@ -561,10 +584,10 @@ if [[ $nooptprogs != "1" ]];then
*9*) packages="$packages poedit";;&
*A*) packages="$packages arduino";;&
esac
inchroot pacman -S $packages --noconfirm --needed
execl chroot pacman -S $packages --noconfirm --needed
if [[ $inswine = 1 ]];then
echo "$(T "Configuring wine for better experience") (32 bit winearch)"
inchroot su $nameuser -c "WINEARCH=win32 wineboot -u"
execl chroot su $nameuser -c "WINEARCH=win32 wineboot -u"
fi
packages=""
fi
@@ -574,19 +597,19 @@ fi
function baseconX {
tput setaf 2 ;echo "$(T "Installing desktop and basic programs, please wait")" ; tput setaf 9
sleep 2
inchroot pacman -S xorg-server xorg-xinit xorg-server-common xf86-input-libinput xterm lightdm lightdm-gtk-greeter gvfs gvfs-mtp gvfs-smb udisks networkmanager network-manager-applet gnome-keyring xdialog --noconfirm
inchroot pacman -S lxterminal ttf-inconsolata octopi octopi-notifier gksu --noconfirm # Basic JKArch programs
execl chroot pacman -S xorg-server xorg-xinit xorg-server-common xf86-input-libinput xterm lightdm lightdm-gtk-greeter gvfs gvfs-mtp gvfs-smb udisks networkmanager network-manager-applet gnome-keyring xdialog --noconfirm
execl chroot pacman -S lxterminal ttf-inconsolata octopi octopi-notifier gksu --noconfirm # Basic JKArch programs
#Instalar pulseaudio si tiene entorno grafico, sino es tonteria
inchroot pacman -S pulseaudio pavucontrol --noconfirm
inchroot pacman -S xdg-user-dirs --noconfirm
inchroot xdg-user-dirs-update
execl chroot pacman -S pulseaudio pavucontrol --noconfirm
execl chroot pacman -S xdg-user-dirs --noconfirm
execl chroot xdg-user-dirs-update
#Gestor de energia
inchroot pacman -S xfce4-power-manager --noconfirm
execl chroot pacman -S xfce4-power-manager --noconfirm
#Habilitamos ciertos servicios
inchroot systemctl enable lightdm
inchroot systemctl enable NetworkManager
execl chroot systemctl enable lightdm
execl chroot systemctl enable NetworkManager
#Parte visual
inchroot pacman -S jkarch-appearance --noconfirm
execl chroot pacman -S jkarch-appearance --noconfirm
clear
}
@@ -610,8 +633,8 @@ optentorno=`dialog --stdout --nocancel --menu "$(T "Select your desktop envirome
case $optentorno in
1)
baseconX
inchroot pacman -S lxappearance lxappearance-obconf lxde-common lxinput lxpanel lxrandr lxsession lxtask lxterminal openbox pcmanfm xfce4-notifyd --noconfirm
inchroot pacman -S gtk-engine-aurora faenza-icon-theme --noconfirm
execl chroot pacman -S lxappearance lxappearance-obconf lxde-common lxinput lxpanel lxrandr lxsession lxtask lxterminal openbox pcmanfm xfce4-notifyd --noconfirm
execl chroot pacman -S gtk-engine-aurora faenza-icon-theme --noconfirm
if [[ $isoffline = 1 ]];then # Is an offline installation?
tar xJf mods/LXDE.tar.xz -C /mnt/
else #online
@@ -620,8 +643,8 @@ case $optentorno in
;;
2)
baseconX
inchroot pacman -S xfce4 --noconfirm
inchroot pacman -S faenza-icon-theme --noconfirm
execl chroot pacman -S xfce4 --noconfirm
execl chroot pacman -S faenza-icon-theme --noconfirm
if [[ $isoffline = 1 ]];then # Is an offline installation?
tar xJf mods/XFCE4.tar.xz -C /mnt/
else #online
@@ -630,29 +653,29 @@ case $optentorno in
;;
3)
baseconX
inchroot pacman -S cinnamon --noconfirm
execl chroot pacman -S cinnamon --noconfirm
;;
4)
optgnome=`dialog --stdout --nocancel --menu "¿Gnome base o gnome con sus extras?" 0 0 5 1 "Gnome base" 2 "Gnome+extras"`
baseconX
case $optgnome in
1) inchroot pacman -S gnome --noconfirm;;
2) inchroot pacman -S gnome gnome-extra --noconfirm;;
1) execl chroot pacman -S gnome --noconfirm;;
2) execl chroot pacman -S gnome gnome-extra --noconfirm;;
esac
inchroot pacman -R gdm --noconfirm
execl chroot pacman -R gdm --noconfirm
;;
5)
optmate=`dialog --stdout --nocancel --menu "¿MATE base o MATE con sus extras?" 0 0 5 1 "MATE base" 2 "MATE+extras"`
baseconX
case $optmate in
1) inchroot pacman -S mate --noconfirm;;
2) inchroot pacman -S mate mate-extra --noconfirm;;
1) execl chroot pacman -S mate --noconfirm;;
2) execl chroot pacman -S mate mate-extra --noconfirm;;
esac
;;
6)
baseconX
inchroot pacman -S plasma --noconfirm
inchroot pacman -R plasma-mediacenter ksshaskpass --noconfirm
execl chroot pacman -S plasma --noconfirm
execl chroot pacman -R plasma-mediacenter ksshaskpass --noconfirm
;;
esac
@@ -694,7 +717,7 @@ do
#Cambiar el layout del teclado por el nuevo
keyboardlayout
;;
3) inchroot pacman -S yaourt base-devel --noconfirm --needed;;
3) execl chroot pacman -S yaourt base-devel --noconfirm --needed;;
esac
fi
done
@@ -707,13 +730,13 @@ if [[ -z $partefi ]];then
optboot=`dialog --stdout --nocancel --menu "¿Instalar bootloader/gestor de arranque?" 0 0 4 1 "Si (GRUB)" 2 "No, no instalar gestor de arranque"`
case $optboot in
1)
inchroot pacman -S grub os-prober --noconfirm
execl chroot pacman -S grub os-prober --noconfirm
#Arranque silencioso
sed -i 's/\GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=3 vga=current"/g' /mnt/etc/default/grub
echo "Instalando GRUB para BIOS/MBR"
#Se usa la variable ${hd} que se escogió al principio
inchroot grub-install --target=i386-pc /dev/${hd}
inchroot grub-mkconfig -o /boot/grub/grub.cfg
execl chroot grub-install --target=i386-pc /dev/${hd}
execl chroot grub-mkconfig -o /boot/grub/grub.cfg
;;
2)
#No hará nada
@@ -726,8 +749,8 @@ else
case $optboot in
1)
echo "Instalando rEFInd para UEFI"
inchroot pacman -S efibootmgr dosfstools refind-efi --noconfirm
inchroot refind-install
execl chroot pacman -S efibootmgr dosfstools refind-efi --noconfirm
execl chroot refind-install
rootuuid=$(blkid -o value -s UUID /dev/$(echo $particionraiz))
echo '"Boot with standard options" "root=UUID='$(echo $rootuuid)' rw add_efi_memmap quiet loglevel=3 vga=current"' > /mnt/boot/refind_linux.conf
echo "Boot in nomodeset mode" "root=UUID='$(echo $rootuuid)' rw add_efi_memmap quiet loglevel=3 vga=current nomodeset" >> /mnt/boot/refind_linux.conf
@@ -736,10 +759,10 @@ else
;;
2)
echo "Instalando GRUB en modo UEFI, puede fallar"
inchroot pacman -S grub os-prober efibootmgr dosfstools --noconfirm
execl chroot pacman -S grub os-prober efibootmgr dosfstools --noconfirm
sed -i 's/\GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=3 vga=current"/g' /mnt/etc/default/grub
inchroot grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub_uefi --recheck
inchroot grub-mkconfig -o /boot/grub/grub.cfg
execl chroot grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub_uefi --recheck
execl chroot grub-mkconfig -o /boot/grub/grub.cfg
mostrardialog "GRUB" "GRUB fue instalado. Si no funciona, verificar en la bios que este seleccionado grub_uefi o grub como arranque, y no Windows u otro"
;;
3)
@@ -827,14 +850,14 @@ echo "JKArch" > /mnt/etc/hostname
#Configuraciones varias, en entorno se instala el entorno y programas del usuario
entorno
inchroot mkinitcpio -p linux #Hacemos el mkinitcpio después de tener instalados los gráficos
execl chroot mkinitcpio -p linux #Hacemos el mkinitcpio después de tener instalados los gráficos
#Ahora, se crea el usuario y se añaden los ficheros de configuracion de skel
userpass
bootinstall
otrasconfig
echo "$(T "Last tweaks and cleaning")"
inchroot systemctl enable dhcpcd
inchroot pacman -Sc --noconfirm
execl chroot systemctl enable dhcpcd
execl chroot pacman -Sc --noconfirm
echo "Sincronizando datos al disco duro, puede tardar unos segundos"
sync
@@ -845,4 +868,5 @@ fi
clear
mostrardialog "$(T "End")" "$(T "Setup finished, press enter to reboot.")"
mv /tmp/install.log /mnt/home/$nameuser/install.log
reboot