Advertisement
Guest User

Untitled

a guest
Jul 18th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.93 KB | None | 0 0
  1.  
  2. 1
  3. #!/bin/bash -e
  4. 2
  5. #
  6. 3
  7. # ==============================================================================
  8. 4
  9. # PAQUETE: canaima-escritorio-gnome
  10. 5
  11. # ARCHIVO: postinst
  12. 6
  13. # DESCRIPCIÓN: Configura el sistema despues la instalación del paquete.
  14. 7
  15. # COPYRIGHT:
  16. 8
  17. # (C) 2010 Luis Alejandro Martínez Faneyth <martinez.faneyth@gmail.com>
  18. 9
  19. # (C) 2010 Diego Alberto Aguilera Zambrano <daguilera85@gmail.com>
  20. 10
  21. # (C) 2010 Carlos Alejandro Guerrero Mora <guerrerocarlos@gmail.com>
  22. 11
  23. # (C) 2010 Francisco Javier Vásquez Guerrero <franjvasquezg@gmail.com>
  24. 12
  25. # LICENCIA: GPL3
  26. 13
  27. # ==============================================================================
  28. 14
  29. #
  30. 15
  31. # Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo los
  32. 16
  33. # términos de la Licencia Pública General de GNU (versión 3).
  34. 17
  35. 18
  36. PKG="canaima-escritorio-gnome"
  37. 19
  38. 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"
  39. 20
  40. FSTAB=/etc/fstab
  41. 21
  42. LAPTOP=""
  43. 22
  44. VERDE="\033[1;34m"
  45. 23
  46. ROJO="\033[0;31m"
  47. 24
  48. FIN="\033[0m"
  49. 25
  50. 26
  51. if [ -n "$(which laptop-detect)" ]; then
  52. 27
  53. if laptop-detect >/dev/null; then
  54. 28
  55. LAPTOP=true
  56. 29
  57. fi
  58. 30
  59. fi
  60. 31
  61. 32
  62. case ${1} in
  63. 33
  64. 34
  65. configure)
  66. 35
  67. 36
  68. echo -e ${VERDE}"===== Parcheando Canaima GNU/Linux con el script de Lennart Poettering ====="${FIN}
  69. 37
  70. 38
  71. # Para cada usuario en /home/ ...
  72. 39
  73. for usuario in /home/*? ;
  74. 40
  75. do
  76. 41
  77. 42
  78. # Obteniendo sólo el nombre del usuario
  79. 43
  80. usuario_min=$(basename ${usuario})
  81. 44
  82. 45
  83. # Y en caso de que el usuario sea un usuario activo (existente en /etc/shadow) ...
  84. 46
  85. case $(grep ${usuario_min} /etc/shadow) in
  86. 47
  87. 48
  88. '')
  89. 49
  90. # No hace nada si no se encuentra en /etc/shadow
  91. 50
  92. ;;
  93. 51
  94. 52
  95. *)
  96. 53
  97. 54
  98. BASHRC_F="/home/${usuario_min}/.bashrc"
  99. 55
  100. 56
  101. if [ $( cat ${BASHRC_F} | grep "/dev/cgroup/cpu/user" | wc -l ) == "0" ];
  102. 57
  103. then
  104. 58
  105. 59
  106. echo "Respaldando ${BASHRC_F} en ${BASHRC_F}.respaldo"
  107. 60
  108. [ ! -e ${BASHRC_F}.respaldo ] && cp ${BASHRC_F} ${BASHRC_F}.respaldo
  109. 61
  110. 62
  111. echo "Parcheando ${BASHRC_F}"
  112. 63
  113. 64
  114. echo "if [ \"\$PS1\" ] ; then" >> ${BASHRC_F}
  115. 65
  116. echo "mkdir -p -m 0700 /dev/cgroup/cpu/user/\$\$ > /dev/null 2>&1" >> ${BASHRC_F}
  117. 66
  118. echo "echo \$\$ > /dev/cgroup/cpu/user/\$\$/tasks" >> ${BASHRC_F}
  119. 67
  120. echo "echo \"1\" > /dev/cgroup/cpu/user/\$\$/notify_on_release" >> ${BASHRC_F}
  121. 68
  122. echo "fi" >> ${BASHRC_F}
  123. 69
  124. 70
  125. chown ${usuario_min}:${usuario_min} ${BASHRC_F}
  126. 71
  127. 72
  128. else
  129. 73
  130. 74
  131. echo ${ROJO}"Parece que ya aplicaste el patch a ${BASHRC_F} con anterioridad. Ignorando."${FIN}
  132. 75
  133. 76
  134. fi
  135. 77
  136. 78
  137. ;;
  138. 79
  139. 80
  140. esac
  141. 81
  142. 82
  143. done
  144. 83
  145. 84
  146. RCLOCAL_F="/etc/rc.local"
  147. 85
  148. 86
  149. if [ $( cat ${RCLOCAL_F} | grep "/dev/cgroup/cpu/release_agent" | wc -l ) == "0" ];
  150. 87
  151. then
  152. 88
  153. 89
  154. INSERTAR=$( cat ${RCLOCAL_F} | grep -n "exit 0" | sort -nr | head -n 1 | awk -F: '{print $1}' )
  155. 90
  156. 91
  157. echo "Respaldando ${RCLOCAL_F} en ${RCLOCAL_F}.respaldo"
  158. 92
  159. [ ! -e ${RCLOCAL_F}.respaldo ] && cp ${RCLOCAL_F} ${RCLOCAL_F}.respaldo
  160. 93
  161. 94
  162. echo "Parcheando ${RCLOCAL_F}"
  163. 95
  164. 96
  165. 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"
  166. 97
  167. mv ${RCLOCAL_F}.nuevo ${RCLOCAL_F}
  168. 98
  169. 99
  170. else
  171. 100
  172. 101
  173. echo ${ROJO}"Parece que ya aplicaste el patch a $FICHERO con anterioridad. Ignorando."${FIN}
  174. 102
  175. 103
  176. fi
  177. 104
  178. 105
  179. echo -e "Otorgando permisos de ejecución a ${BASHRC_F}"
  180. 106
  181. chmod +x ${BASHRC_F}
  182. 107
  183. 108
  184. CGROUP_F="/usr/local/sbin/cgroup_clean"
  185. 109
  186. 110
  187. echo -e "Creando ${CGROUP_F}"
  188. 111
  189. 112
  190. echo "#!/bin/sh" > ${CGROUP_F}
  191. 113
  192. echo "if [ \"\$*\" != \"/user\" ]; then" >> ${CGROUP_F}
  193. 114
  194. echo "rmdir /dev/cgroup/cpu/\$*" >> ${CGROUP_F}
  195. 115
  196. echo "fi" >> ${CGROUP_F}
  197. 116
  198. 117
  199. echo -e "Otorgando permisos de ejecución a ${CGROUP_F}"
  200. 118
  201. chmod +x ${CGROUP_F}
  202. 119
  203. 120
  204. 121
  205. echo ${VERDE}"===== Removiendo scripts de inicio usualmente innecesarios ====="${FIN}
  206. 122
  207. 123
  208. for list in ${LIST}
  209. 124
  210. do
  211. 125
  212. 126
  213. if [ -n $LAPTOP ]
  214. 127
  215. then
  216. 128
  217. 129
  218. if [ ${list} != "acpid" ] || [ ${list} != "apmd" ]
  219. 130
  220. then
  221. 131
  222. 132
  223. update-rc.d -f ${list} remove
  224. 133
  225. [ -e /etc/init.d/${list} ] && rm -rf /etc/init.d/${list}
  226. 134
  227. fi
  228. 135
  229. 136
  230. else
  231. 137
  232. 138
  233. update-rc.d -f ${list} remove
  234. 139
  235. [ -e /etc/init.d/${list} ] && rm -rf /etc/init.d/${list}
  236. 140
  237. 141
  238. fi
  239. 142
  240. 143
  241. done
  242. 144
  243. 145
  244. if [ -e /etc/default/avahi-daemon ]
  245. 146
  246. then
  247. 147
  248. 148
  249. echo ${VERDE}"===== Asegurando que avahi-daemon no inicie ====="${FIN}
  250. 149
  251. sed -i 's/AVAHI_DAEMON_DETECT_LOCAL=1/AVAHI_DAEMON_DETECT_LOCAL=0/g' /etc/default/avahi-daemon
  252. 150
  253. 151
  254. fi
  255. 152
  256. 153
  257. if [ -e /etc/default/rcS ]
  258. 154
  259. then
  260. 155
  261. 156
  262. echo ${VERDE}"===== Cambiando la forma de carga de las dependencias iniciales del sistema (CONCURRENCY=makefile) ====="${FIN}
  263. 157
  264. [ -z $( grep "CONCURRENCY=makefile" /etc/default/rcS ) ] && echo 'CONCURRENCY=makefile' >> /etc/default/rcS
  265. 158
  266. 159
  267. fi
  268. 160
  269. 161
  270. if [ -e /etc/sysctl.conf ]
  271. 162
  272. then
  273. 163
  274. 164
  275. echo ${VERDE}"===== Reduciendo la cantidad de procesos que se swapean, la RAM es más rápida (vm.swappiness) ====="${FIN}
  276. 165
  277. [ -z $( grep "vm.swappiness=10" /etc/sysctl.conf ) ] && echo 'vm.swappiness=10' >> /etc/sysctl.conf
  278. 166
  279. 167
  280. fi
  281. 168
  282. 169
  283. if [ -e /etc/default/prelink ]
  284. 170
  285. then
  286. 171
  287. 172
  288. echo ${VERDE}"===== Pre-enlazando librerías para mejorar la eficiencia de Canaima (prelink) ====="${FIN}
  289. 173
  290. echo "Éste proceso tomará un poco de tiempo dependiendo de la cantidad de programas instalados ..."
  291. 174
  292. echo "Le recomendamos que se tome un buen café venezolano mientras espera."
  293. 175
  294. sed -i 's/PRELINKING=unknown/PRELINKING=yes/g' /etc/default/prelink
  295. 176
  296. sed -i 's/PRELINKING=no/PRELINKING=yes/g' /etc/default/prelink
  297. 177
  298. /etc/cron.daily/prelink
  299. 178
  300. 179
  301. fi
  302. 180
  303. 181
  304. if [ -e /etc/inittab ]
  305. 182
  306. then
  307. 183
  308. 184
  309. echo ${VERDE}"===== Reduciendo cantidad de TTY'S a 2, el usuario no las usa todas en realidad ====="${FIN}
  310. 185
  311. sed -i 's/3:23:respawn:\/sbin\/getty/#3:23:respawn:\/sbin\/getty/g' /etc/inittab
  312. 186
  313. sed -i 's/4:23:respawn:\/sbin\/getty/#4:23:respawn:\/sbin\/getty/g' /etc/inittab
  314. 187
  315. sed -i 's/5:23:respawn:\/sbin\/getty/#5:23:respawn:\/sbin\/getty/g' /etc/inittab
  316. 188
  317. sed -i 's/6:23:respawn:\/sbin\/getty/#6:23:respawn:\/sbin\/getty/g' /etc/inittab
  318. 189
  319. 190
  320. fi
  321. 191
  322. 192
  323. echo ${VERDE}"===== Añadiendo noatime a /etc/fstab ====="${FIN}
  324. 193
  325. 194
  326. if [ $( cat ${FSTAB} | grep "Optimizado para Canaima GNU/Linux" | wc -l ) == 0 ]
  327. 195
  328. then
  329. 196
  330. 197
  331. echo "#" >> ${FSTAB}
  332. 198
  333. echo "# Optimizado para Canaima GNU/Linux (agregado noatime a las opciones de disco)" >> ${FSTAB}
  334. 199
  335. echo "#" >> ${FSTAB}
  336. 200
  337. 201
  338. fi
  339. 202
  340. 203
  341. sed -i 's/ / /g' ${FSTAB}
  342. 204
  343. sed -i 's/ / /g' ${FSTAB}
  344. 205
  345. sed -i 's/ / /g' ${FSTAB}
  346. 206
  347. sed -i 's/ / /g' ${FSTAB}
  348. 207
  349. sed -i 's/, /,/g' ${FSTAB}
  350. 208
  351. sed -i 's/ / /g' ${FSTAB}
  352. 209
  353. sed -i 's/ / /g' ${FSTAB}
  354. 210
  355. 211
  356. for datos in $( cat ${FSTAB} | awk '{print $3"##--TOKEN--##"$2"##--TOKEN--##"$4"##--TOKEN--##"$1}' )
  357. 212
  358. do
  359. 213
  360. 214
  361. for fs in ext2 ext3 ext4 xfs
  362. 215
  363. do
  364. 216
  365. 217
  366. if [ $( echo $( expr "$datos" : "$fs" ) ) == 4 ]
  367. 218
  368. then
  369. 219
  370. 220
  371. parsing=${datos#$fs##--TOKEN--##}
  372. 221
  373. dispositivo=$( echo $parsing | sed 's/##--TOKEN--##/ /g' | awk '{print $1}' )
  374. 222
  375. dispositivo=$( echo $dispositivo | sed 's/\//\\\//g' )
  376. 223
  377. propiedad=$( echo $parsing | sed 's/##--TOKEN--##/ /g' | awk '{print $2}' )
  378. 224
  379. uuid=$( echo $parsing | sed 's/##--TOKEN--##/ /g' | awk '{print $3}' )
  380. 225
  381. 226
  382. case ${propiedad} in
  383. 227
  384. 228
  385. "defaults")
  386. 229
  387. 230
  388. if [ $dispositivo == "\/" ]
  389. 231
  390. then
  391. 232
  392. 233
  393. sed -i 's/'${uuid}' '${dispositivo}' '${fs}' '${propiedad}'/'${uuid}' '${dispositivo}' '${fs}' defaults,noatime,errors=remount-ro/g' ${FSTAB}
  394. 234
  395. 235
  396. else
  397. 236
  398. 237
  399. sed -i 's/'${uuid}' '${dispositivo}' '${fs}' '${propiedad}'/'${uuid}' '${dispositivo}' '${fs}' defaults,noatime/g' ${FSTAB}
  400. 238
  401. 239
  402. fi
  403. 240
  404. 241
  405. ;;
  406. 242
  407. 243
  408. "errors=remount-ro,defaults")
  409. 244
  410. 245
  411. sed -i 's/'${uuid}' '${dispositivo}' '${fs}' '${propiedad}'/'${uuid}' '${dispositivo}' '${fs}' defaults,noatime,errors=remount-ro/g' ${FSTAB}
  412. 246
  413. 247
  414. ;;
  415. 248
  416. 249
  417. "defaults,errors=remount-ro")
  418. 250
  419. 251
  420. sed -i 's/'${uuid}' '${dispositivo}' '${fs}' '${propiedad}'/'${uuid}' '${dispositivo}' '${fs}' defaults,noatime,errors=remount-ro/g' ${FSTAB}
  421. 252
  422. 253
  423. ;;
  424. 254
  425. 255
  426. "errors=remount-ro")
  427. 256
  428. 257
  429. if [ $dispositivo == "\/" ]
  430. 258
  431. then
  432. 259
  433. 260
  434. sed -i 's/'${uuid}' '${dispositivo}' '${fs}' '${propiedad}'/'${uuid}' '${dispositivo}' '${fs}' defaults,noatime,errors=remount-ro/g' ${FSTAB}
  435. 261
  436. 262
  437. else
  438. 263
  439. 264
  440. sed -i 's/'${uuid}' '${dispositivo}' '${fs}' '${propiedad}'/'${uuid}' '${dispositivo}' '${fs}' noatime,errors=remount-ro/g' ${FSTAB}
  441. 265
  442. 266
  443. fi
  444. 267
  445. 268
  446. ;;
  447. 269
  448. 270
  449. esac
  450. 271
  451. 272
  452. fi
  453. 273
  454. 274
  455. done
  456. 275
  457. 276
  458. done
  459. 277
  460. 278
  461. 279
  462. ;;
  463. 280
  464. 281
  465. abort-upgrade|abort-remove|abort-deconfigure)
  466. 282
  467. ;;
  468. 283
  469. 284
  470. *)
  471. 285
  472. 286
  473. echo "postinst no reconoce el argumento '"${1}"'" >&2
  474. 287
  475. exit 1
  476. 288
  477. 289
  478. ;;
  479. 290
  480. 291
  481. esac
  482. 292
  483. 293
  484. #DEBHELPER#
  485. 294
  486. 295
  487. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement