Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1
- #!/bin/bash -e
- 2
- #
- 3
- # ==============================================================================
- 4
- # PAQUETE: canaima-escritorio-gnome
- 5
- # ARCHIVO: postinst
- 6
- # DESCRIPCIÓN: Configura el sistema despues la instalación del paquete.
- 7
- # COPYRIGHT:
- 8
- # (C) 2010 Luis Alejandro Martínez Faneyth <martinez.faneyth@gmail.com>
- 9
- # (C) 2010 Diego Alberto Aguilera Zambrano <daguilera85@gmail.com>
- 10
- # (C) 2010 Carlos Alejandro Guerrero Mora <guerrerocarlos@gmail.com>
- 11
- # (C) 2010 Francisco Javier Vásquez Guerrero <franjvasquezg@gmail.com>
- 12
- # LICENCIA: GPL3
- 13
- # ==============================================================================
- 14
- #
- 15
- # Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo los
- 16
- # términos de la Licencia Pública General de GNU (versión 3).
- 17
- 18
- PKG="canaima-escritorio-gnome"
- 19
- LIST="acpid apmd anacron avahi-daemon bluetooth bluez-utils fetchmail dns-clean atd portmap rsync exim4 kerneloops saned acpi-fakekey acpi-support apmd canaima-bienvenido-video cryptdisks cryptdisks-early dhcdbd fam hibernate hotkey-setup kbd keymap.sh klogd live-initramfs lvm2 ntp openvpn pcmciautils pppd-dns resolvconf samba screen-cleanup splashy sysklogd tpconfig xdebconfigurator nfs-common statd"
- 20
- FSTAB=/etc/fstab
- 21
- LAPTOP=""
- 22
- VERDE="\033[1;34m"
- 23
- ROJO="\033[0;31m"
- 24
- FIN="\033[0m"
- 25
- 26
- if [ -n "$(which laptop-detect)" ]; then
- 27
- if laptop-detect >/dev/null; then
- 28
- LAPTOP=true
- 29
- fi
- 30
- fi
- 31
- 32
- case ${1} in
- 33
- 34
- configure)
- 35
- 36
- echo -e ${VERDE}"===== Parcheando Canaima GNU/Linux con el script de Lennart Poettering ====="${FIN}
- 37
- 38
- # Para cada usuario en /home/ ...
- 39
- for usuario in /home/*? ;
- 40
- do
- 41
- 42
- # Obteniendo sólo el nombre del usuario
- 43
- usuario_min=$(basename ${usuario})
- 44
- 45
- # Y en caso de que el usuario sea un usuario activo (existente en /etc/shadow) ...
- 46
- case $(grep ${usuario_min} /etc/shadow) in
- 47
- 48
- '')
- 49
- # No hace nada si no se encuentra en /etc/shadow
- 50
- ;;
- 51
- 52
- *)
- 53
- 54
- BASHRC_F="/home/${usuario_min}/.bashrc"
- 55
- 56
- if [ $( cat ${BASHRC_F} | grep "/dev/cgroup/cpu/user" | wc -l ) == "0" ];
- 57
- then
- 58
- 59
- echo "Respaldando ${BASHRC_F} en ${BASHRC_F}.respaldo"
- 60
- [ ! -e ${BASHRC_F}.respaldo ] && cp ${BASHRC_F} ${BASHRC_F}.respaldo
- 61
- 62
- echo "Parcheando ${BASHRC_F}"
- 63
- 64
- echo "if [ \"\$PS1\" ] ; then" >> ${BASHRC_F}
- 65
- echo "mkdir -p -m 0700 /dev/cgroup/cpu/user/\$\$ > /dev/null 2>&1" >> ${BASHRC_F}
- 66
- echo "echo \$\$ > /dev/cgroup/cpu/user/\$\$/tasks" >> ${BASHRC_F}
- 67
- echo "echo \"1\" > /dev/cgroup/cpu/user/\$\$/notify_on_release" >> ${BASHRC_F}
- 68
- echo "fi" >> ${BASHRC_F}
- 69
- 70
- chown ${usuario_min}:${usuario_min} ${BASHRC_F}
- 71
- 72
- else
- 73
- 74
- echo ${ROJO}"Parece que ya aplicaste el patch a ${BASHRC_F} con anterioridad. Ignorando."${FIN}
- 75
- 76
- fi
- 77
- 78
- ;;
- 79
- 80
- esac
- 81
- 82
- done
- 83
- 84
- RCLOCAL_F="/etc/rc.local"
- 85
- 86
- if [ $( cat ${RCLOCAL_F} | grep "/dev/cgroup/cpu/release_agent" | wc -l ) == "0" ];
- 87
- then
- 88
- 89
- INSERTAR=$( cat ${RCLOCAL_F} | grep -n "exit 0" | sort -nr | head -n 1 | awk -F: '{print $1}' )
- 90
- 91
- echo "Respaldando ${RCLOCAL_F} en ${RCLOCAL_F}.respaldo"
- 92
- [ ! -e ${RCLOCAL_F}.respaldo ] && cp ${RCLOCAL_F} ${RCLOCAL_F}.respaldo
- 93
- 94
- echo "Parcheando ${RCLOCAL_F}"
- 95
- 96
- sed "${INSERTAR}imkdir -p /dev/cgroup/cpu\nmount -t cgroup cgroup /dev/cgroup/cpu -o cpu\nmkdir -m 0777 /dev/cgroup/cpu/user\necho \"/usr/local/sbin/cgroup_clean\" > /dev/cgroup/cpu/release_agent" /etc/rc.local >> "${RCLOCAL_F}.nuevo"
- 97
- mv ${RCLOCAL_F}.nuevo ${RCLOCAL_F}
- 98
- 99
- else
- 100
- 101
- echo ${ROJO}"Parece que ya aplicaste el patch a $FICHERO con anterioridad. Ignorando."${FIN}
- 102
- 103
- fi
- 104
- 105
- echo -e "Otorgando permisos de ejecución a ${BASHRC_F}"
- 106
- chmod +x ${BASHRC_F}
- 107
- 108
- CGROUP_F="/usr/local/sbin/cgroup_clean"
- 109
- 110
- echo -e "Creando ${CGROUP_F}"
- 111
- 112
- echo "#!/bin/sh" > ${CGROUP_F}
- 113
- echo "if [ \"\$*\" != \"/user\" ]; then" >> ${CGROUP_F}
- 114
- echo "rmdir /dev/cgroup/cpu/\$*" >> ${CGROUP_F}
- 115
- echo "fi" >> ${CGROUP_F}
- 116
- 117
- echo -e "Otorgando permisos de ejecución a ${CGROUP_F}"
- 118
- chmod +x ${CGROUP_F}
- 119
- 120
- 121
- echo ${VERDE}"===== Removiendo scripts de inicio usualmente innecesarios ====="${FIN}
- 122
- 123
- for list in ${LIST}
- 124
- do
- 125
- 126
- if [ -n $LAPTOP ]
- 127
- then
- 128
- 129
- if [ ${list} != "acpid" ] || [ ${list} != "apmd" ]
- 130
- then
- 131
- 132
- update-rc.d -f ${list} remove
- 133
- [ -e /etc/init.d/${list} ] && rm -rf /etc/init.d/${list}
- 134
- fi
- 135
- 136
- else
- 137
- 138
- update-rc.d -f ${list} remove
- 139
- [ -e /etc/init.d/${list} ] && rm -rf /etc/init.d/${list}
- 140
- 141
- fi
- 142
- 143
- done
- 144
- 145
- if [ -e /etc/default/avahi-daemon ]
- 146
- then
- 147
- 148
- echo ${VERDE}"===== Asegurando que avahi-daemon no inicie ====="${FIN}
- 149
- sed -i 's/AVAHI_DAEMON_DETECT_LOCAL=1/AVAHI_DAEMON_DETECT_LOCAL=0/g' /etc/default/avahi-daemon
- 150
- 151
- fi
- 152
- 153
- if [ -e /etc/default/rcS ]
- 154
- then
- 155
- 156
- echo ${VERDE}"===== Cambiando la forma de carga de las dependencias iniciales del sistema (CONCURRENCY=makefile) ====="${FIN}
- 157
- [ -z $( grep "CONCURRENCY=makefile" /etc/default/rcS ) ] && echo 'CONCURRENCY=makefile' >> /etc/default/rcS
- 158
- 159
- fi
- 160
- 161
- if [ -e /etc/sysctl.conf ]
- 162
- then
- 163
- 164
- echo ${VERDE}"===== Reduciendo la cantidad de procesos que se swapean, la RAM es más rápida (vm.swappiness) ====="${FIN}
- 165
- [ -z $( grep "vm.swappiness=10" /etc/sysctl.conf ) ] && echo 'vm.swappiness=10' >> /etc/sysctl.conf
- 166
- 167
- fi
- 168
- 169
- if [ -e /etc/default/prelink ]
- 170
- then
- 171
- 172
- echo ${VERDE}"===== Pre-enlazando librerías para mejorar la eficiencia de Canaima (prelink) ====="${FIN}
- 173
- echo "Éste proceso tomará un poco de tiempo dependiendo de la cantidad de programas instalados ..."
- 174
- echo "Le recomendamos que se tome un buen café venezolano mientras espera."
- 175
- sed -i 's/PRELINKING=unknown/PRELINKING=yes/g' /etc/default/prelink
- 176
- sed -i 's/PRELINKING=no/PRELINKING=yes/g' /etc/default/prelink
- 177
- /etc/cron.daily/prelink
- 178
- 179
- fi
- 180
- 181
- if [ -e /etc/inittab ]
- 182
- then
- 183
- 184
- echo ${VERDE}"===== Reduciendo cantidad de TTY'S a 2, el usuario no las usa todas en realidad ====="${FIN}
- 185
- sed -i 's/3:23:respawn:\/sbin\/getty/#3:23:respawn:\/sbin\/getty/g' /etc/inittab
- 186
- sed -i 's/4:23:respawn:\/sbin\/getty/#4:23:respawn:\/sbin\/getty/g' /etc/inittab
- 187
- sed -i 's/5:23:respawn:\/sbin\/getty/#5:23:respawn:\/sbin\/getty/g' /etc/inittab
- 188
- sed -i 's/6:23:respawn:\/sbin\/getty/#6:23:respawn:\/sbin\/getty/g' /etc/inittab
- 189
- 190
- fi
- 191
- 192
- echo ${VERDE}"===== Añadiendo noatime a /etc/fstab ====="${FIN}
- 193
- 194
- if [ $( cat ${FSTAB} | grep "Optimizado para Canaima GNU/Linux" | wc -l ) == 0 ]
- 195
- then
- 196
- 197
- echo "#" >> ${FSTAB}
- 198
- echo "# Optimizado para Canaima GNU/Linux (agregado noatime a las opciones de disco)" >> ${FSTAB}
- 199
- echo "#" >> ${FSTAB}
- 200
- 201
- fi
- 202
- 203
- sed -i 's/ / /g' ${FSTAB}
- 204
- sed -i 's/ / /g' ${FSTAB}
- 205
- sed -i 's/ / /g' ${FSTAB}
- 206
- sed -i 's/ / /g' ${FSTAB}
- 207
- sed -i 's/, /,/g' ${FSTAB}
- 208
- sed -i 's/ / /g' ${FSTAB}
- 209
- sed -i 's/ / /g' ${FSTAB}
- 210
- 211
- for datos in $( cat ${FSTAB} | awk '{print $3"##--TOKEN--##"$2"##--TOKEN--##"$4"##--TOKEN--##"$1}' )
- 212
- do
- 213
- 214
- for fs in ext2 ext3 ext4 xfs
- 215
- do
- 216
- 217
- if [ $( echo $( expr "$datos" : "$fs" ) ) == 4 ]
- 218
- then
- 219
- 220
- parsing=${datos#$fs##--TOKEN--##}
- 221
- dispositivo=$( echo $parsing | sed 's/##--TOKEN--##/ /g' | awk '{print $1}' )
- 222
- dispositivo=$( echo $dispositivo | sed 's/\//\\\//g' )
- 223
- propiedad=$( echo $parsing | sed 's/##--TOKEN--##/ /g' | awk '{print $2}' )
- 224
- uuid=$( echo $parsing | sed 's/##--TOKEN--##/ /g' | awk '{print $3}' )
- 225
- 226
- case ${propiedad} in
- 227
- 228
- "defaults")
- 229
- 230
- if [ $dispositivo == "\/" ]
- 231
- then
- 232
- 233
- sed -i 's/'${uuid}' '${dispositivo}' '${fs}' '${propiedad}'/'${uuid}' '${dispositivo}' '${fs}' defaults,noatime,errors=remount-ro/g' ${FSTAB}
- 234
- 235
- else
- 236
- 237
- sed -i 's/'${uuid}' '${dispositivo}' '${fs}' '${propiedad}'/'${uuid}' '${dispositivo}' '${fs}' defaults,noatime/g' ${FSTAB}
- 238
- 239
- fi
- 240
- 241
- ;;
- 242
- 243
- "errors=remount-ro,defaults")
- 244
- 245
- sed -i 's/'${uuid}' '${dispositivo}' '${fs}' '${propiedad}'/'${uuid}' '${dispositivo}' '${fs}' defaults,noatime,errors=remount-ro/g' ${FSTAB}
- 246
- 247
- ;;
- 248
- 249
- "defaults,errors=remount-ro")
- 250
- 251
- sed -i 's/'${uuid}' '${dispositivo}' '${fs}' '${propiedad}'/'${uuid}' '${dispositivo}' '${fs}' defaults,noatime,errors=remount-ro/g' ${FSTAB}
- 252
- 253
- ;;
- 254
- 255
- "errors=remount-ro")
- 256
- 257
- if [ $dispositivo == "\/" ]
- 258
- then
- 259
- 260
- sed -i 's/'${uuid}' '${dispositivo}' '${fs}' '${propiedad}'/'${uuid}' '${dispositivo}' '${fs}' defaults,noatime,errors=remount-ro/g' ${FSTAB}
- 261
- 262
- else
- 263
- 264
- sed -i 's/'${uuid}' '${dispositivo}' '${fs}' '${propiedad}'/'${uuid}' '${dispositivo}' '${fs}' noatime,errors=remount-ro/g' ${FSTAB}
- 265
- 266
- fi
- 267
- 268
- ;;
- 269
- 270
- esac
- 271
- 272
- fi
- 273
- 274
- done
- 275
- 276
- done
- 277
- 278
- 279
- ;;
- 280
- 281
- abort-upgrade|abort-remove|abort-deconfigure)
- 282
- ;;
- 283
- 284
- *)
- 285
- 286
- echo "postinst no reconoce el argumento '"${1}"'" >&2
- 287
- exit 1
- 288
- 289
- ;;
- 290
- 291
- esac
- 292
- 293
- #DEBHELPER#
- 294
- 295
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement