Crear script para descargar paquetes de software y actualizar el sistema después de formatear

Imagen de philosopher
0 puntos

Muy buenas a todos.

Instalé este maravilloso sistema operativo hace dos meses y poco a poco me estoy animando a usar la línea de comandos.

Una cosa que me molesta bastante es lo de volver a descargarme todo el software que necesito después de formatear y por eso estoy intentando hacer un script que lo haga por mí, de tal modo que yo mientras pueda darme una ducha o lo que sea. En un principio tenía algo así como

#!/bin/bash
sudo apt-get update
sudo apt-get install nvidia-glx-new flashplugin-nonfree sun-java6-plugin etc
sudo apt-get upgrade

escrito en un archivo de texto ejecutable y me funcionaba perfectamente. Sin embargo, como el proceso dura aproximadamente media hora, me vuelve a pedir la contraseña a mitad de camino y es una lata :(

Por ello decidi, en lugar de ejecutarlo todo como si fuese el superusuario, iniciar sesión al principio como root y serlo efectivamente (no sé si se me entiende :P), en otras palabras...

#!/bin/bash
sudo su
apt-get update
apt-get install nvidia-glx-new flashplugin-nonfree sun-java6-plugin etc
apt-get upgrade

Peeeero no consigo nada. Se abre la terminal, se inicia la sesión como administrador y nada más :(
Asumo que falta algún parámetro delante de los "apt-get", pero no consigo encontrarlo. Pienso que "sudo" se podría obviar no? Lo digo xk significa "ejecutar como superusuario"... y ya soy el superusuario!

He probado a anteponer simplemente "su" y nada... ¿alguna idea?

 

Imagen de slap
+1
0
-1

Puedes hacer lo siguiente:
Creas tu script sólo con los apt-get (sin sudo delante)
y lo ejecutas:

sudo ./tuscript

Saludos.
slap

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de philosopher
+1
0
-1

Mmmm, eso podría funcionar, pero no deja de ser una manera de evadir la cuestión principal. Me gustaría saber para futuras ocasiones qué cosa hay que poner en un script antes de apt-get si inicias la sesión como root :P

+1
0
-1
Imagen de joseluis
+1
0
-1

Si inicias sesión como root no tienes que poner nada antes de apt-get.
El problema que tenías en tu script es que las líneas del apt-get no estaban dentro de la misma sesión del root. Es decir con sudo su lo que hacías era abrir una nueva shell como root, y al salir de esa shell seguiría el script ejecutando los apt-get pero ahora como el usuario con el que lanzaste el script.
Por eso la solución que te ha dado slap es la correcta, si tu quieres que x comandos se ejecuten como root debes o bien anteponerles a cada uno el sudo (el primer script que has puesto), con lo que tienes el problema que si transcurre mucho tiempo entre uno y otro te vuelva a pedir la password, o bien ejecutar el conjunto de comandos (en este caso el script) con sudo (solución que te ha dado slap).


Fdo. El forense asesino alias Censor fundamentalista.

+1
0
-1

Fdo. Forense asesino, Censor fundamentalista, Fustigador de novatos y Patético maleducado

Imagen de philosopher
+1
0
-1

Y no es posible meter esas líneas de apt-get dentro de la misma sesión del root?

+1
0
-1
Imagen de slap
+1
0
-1

Con la solución que te he propuesto, todos los apt-get se ejecutan en la misma sesión de root cuando ejecutas el script con sudo.

¿No entiendo muy bien qué más necesitas?

Slap

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de philosopher
+1
0
-1

- Si te he entendido bien, tú me propones que ejecute todo el script desde una terminal con el comando sudo.

- Pero yo quiero poder ejecutar directamente el script, sin dar más vueltas. Hacer doble click y listo :)

+1
0
-1
Imagen de slap
+1
0
-1

Pues créate un lanzador para el script que contenga como comando:

gksudo /ruta/a/tuscript

Así podrás hacer doble clic en el lanzador y te pedirá el password una sola vez y de forma gráfica.

Saludos.
slap

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de pastorius3
+1
0
-1

buenos dias

la mejor solucion para tu problema es lo siguiente,  

tu script asi esta bien, pero quitale el "sudo",

lo puedes colocar en /bin y cualquier usuario lo podra ejecutar,

pero mejor es colocarlo en /sbin (solo root)...

le colocas un nombre como my_script :) y lo guardas en el directorio /sbin

entonces va a aparecer como un comando mas, entonces tendrias que ejecutarlo asi

$my_sqcript

: permiso denegado, es usted root ? //algo asi, entonces haces

$sudo my_script //ahi te pedira la contraseña y listo,

:) espero que te vaya bien, y me cuentas como te va

asi tendria que ser el script. 

#!/bin/bash
apt-get update
apt-get install nvidia-glx-new flashplugin-nonfree sun-java6-plugin etc
apt-get upgrade

 

recuerda quitar el sudo del script

eso es

saluDOS

 

| hscs87(arroba)gmail.com | Linux User #415581 | Ubuntu User #6998

+1
0
-1

return NULL ;  

| pastorius3 gmail com | Linux User #415581 | Ubuntu User #6998 |

Imagen de philosopher
+1
0
-1

Pero... ¿Acaso no hay modo humano de ejecutar varios comandos con sudo en un único script jugando con la sintaxis? No sé... usando tuberías, corchetes o lo que sea... Algo más directo y sencillito... Algo en plan...

sudo apt-get update AND install tal tal y tal AND upgrade

o bien

sudo apt-get {update // install tal tal y tal // upgrade}

pero que funcione (esto me lo acabo de inventar :P).

Muchas gracias de antemano :D

+1
0
-1
Imagen de pastorius3
+1
0
-1

creo que si estan los operadores AND y OR para la linea de comandos,

pero que mas sencillo que el script te ejecute todos los comandos necesarios ?

 colocas los comandos en el script, 

lo guardas en /sbin, para que el root los pueda ejecutar

y su nombre se añade a la lista de comandos - ordenes disponibles,

y te pedira ser root,

antenpoes sudo y despues te pide la password y listo,

 

no se que mas sencillo puede haber..

saluDOS  

| hscs87(arroba)gmail.com | Linux User #415581 | Ubuntu User #6998

+1
0
-1

return NULL ;  

| pastorius3 gmail com | Linux User #415581 | Ubuntu User #6998 |