# ¿emerger lista paquetes hacia/desde fichero texto?{resuelto}

## papu

tengo una lista de paquetes en un fichero de texto y quiero desinstalarlo pero me da error de "no valid package atom".

¿porqué?

```

enric@Ordinador ~/Diversos $ sudo emerge -pc $(cat netbeans.txt)

!!! 'java-virtuals/jaf' is not a valid package atom.

!!! Please check ebuild(5) for full details.

enric@Ordinador ~/Diversos $ sudo emerge -pc $(< netbeans.txt)

!!! 'java-virtuals/jaf' is not a valid package atom.

!!! Please check ebuild(5) for full details.

enric@Ordinador ~/Diversos $ cat netbeans.txt |xargs sudo emerge -pc

!!! 'java-virtuals/jaf' is not a valid package atom.

!!! Please check ebuild(5) for full details.

enric@Ordinador ~/Diversos $ cat < netbeans.txt | xargs sudo emerge -pc

!!! 'java-virtuals/jaf' is not a valid package atom.

!!! Please check ebuild(5) for full details

```

netbeans.txt

 *Quote:*   

> java-virtuals/jaf
> 
> dev-java/mimepull
> 
> dev-java/beansbinding 
> ...

 

por separado no da ningun error

```
sudo emerge -pc java-virtuals/jaf

Calculating dependencies                      ... done!

  java-virtuals/jaf-1.1-r1 pulled in by:

    dev-java/saaj-1.3.19-r1

    dev-java/stax-ex-1.0-r1

    dev-java/xmlstreambuffer-0.5.20070412-r2

>>> No packages selected for removal by depclean

Packages installed:   1179

Packages in world:    223

Packages in system:   42

Required packages:    1179

Number to remove:     0

```

----------

## quilosaq

 *papu wrote:*   

> tengo una lista de paquetes en un fichero de texto y quiero desinstalarlo pero me da error de "no valid package atom".
> 
> ¿porqué?...

 

El archivo netbeans.txt está en formato texto plano DOS (las líneas terminan con CR+LF). Tienes que cambiarlo a formato UNIX (sólo LF).

----------

## papu

asi es era por el tema ese ya me imaginé que podía ser algo parecido pero como estaba usando libroffice aunque fese un archivo .txt , creí no usaria sistema DOS.

Ahora pregunto el caso inverso:

¿hay alguna utilidad que haga una lista a fichero de las dependencias que requiere un determinado paquete o bien via consola con alguna instruccion de filtro de texto? Quizás haya ya algun comando que haga todo eso junto  :Smile: 

Ejemplo :meter todo lo siguiente pero filtrando por atoms en un fichero para luego poder instalarlo como en la pregunta inicial de post, sin tener que limpiarlo manualmente que es como lo he hecho antes   :Razz: 

sudo emerge -av netbeans

 *Quote:*   

> 
> 
> These are the packages that would be merged, in order:
> 
> Calculating dependencies ... done!                           
> ...

 

saludos, ad1

----------

## gringo

 *Quote:*   

> meter todo lo siguiente pero filtrando por atoms en un fichero para luego poder instalarlo como en la pregunta inicial de post, sin tener que limpiarlo manualmente que es como lo he hecho antes

 

crea un set con los paquetes que quieres. Luego ya es cuestión de emerge -av1 @set o emerge -Cav1 @set. 

saluetes

----------

## papu

 *gringo wrote:*   

>  *Quote:*   meter todo lo siguiente pero filtrando por atoms en un fichero para luego poder instalarlo como en la pregunta inicial de post, sin tener que limpiarlo manualmente que es como lo he hecho antes 
> 
> crea un set con los paquetes que quieres. Luego ya es cuestión de emerge -av1 @set o emerge -Cav1 @set. 
> 
> saluetes

 

¿que es un set? es la primera vez lo oigo  voy a aprender que es   :Smile:  a ver si me sirve para lo que quiero hacer.

----------

## gringo

un set es un simple archivo de texto en el que se definen los paquetes a instalar ( es mas que esto realmente pero para que nos entendamos).

A modo de ejemplo rápido, si tienes un archivo cool en /etc/portage/sets :

cat /etc/portage/sets/cool :

```
sys-process/lsof

sys-process/htop

app-misc/screen
```

si ejecutas emerge -av1 @cool te devolverá lo siguiente :

```
emerge -av1 @cool

[ebuild   R   ] sys-process/lsof-4.87  USE="-examples -ipv6 -rpc (-selinux) -static" 

[ebuild   R   ] sys-process/htop-1.0.2  USE="unicode -openvz -vserver" 

[ebuild   R   ] app-misc/screen-4.0.3-r7  USE="pam -debug -multiuser -nethack (-selinux)"
```

world es un set, system es un set y tienes unos cuantos mas disponibles "de serie", simplemente ejecuta emerge --list-sets y encontrarás mas de uno que son muy útiles.

Para mas info acude a la man de portage y al directorio /usr/share/portage/config/sets/.

No sé que versión de portage hay que tener para que funcionen los sets pero supongo que ya estará disponible en la versión estable.

saluetes

----------

## papu

 *gringo wrote:*   

> un set es un simple archivo de texto en el que se definen los paquetes a instalar ( es mas que esto realmente pero para que nos entendamos).
> 
> A modo de ejemplo rápido, si tienes un archivo cool en /etc/portage/sets :
> 
> cat /etc/portage/sets/cool :
> ...

 

eso es simplemente un archivo de texto con una lista de paquetes.

pero yo precisamente es eso lo que quiero hacer: mandar a un fichero  mediante una instruccion donde me filtre la lista de atoms que me instala un paquete determinado. Estoy buscando ese filtro de texto para mandar la salida al fichero es lo que me interesa ahora mismo encontrar  :Smile: 

ejemplo:

instalar

sudo emerge -pv netbeans|cut -d']' -f2 |cut -d' ' -f2 > netbeans

desinstalar

sudo emerge -Cp `< netbeans`

saludos, ad1

----------

## opotonil

 *Quote:*   

> 
> 
> ejemplo: 
> 
> instalar 
> ...

 

¿Algun motivo en especial por el que no quieras utilizar "depclean"?

```

instalar

emerge -pv netbeans

desinstalar

emerge -p --depclean netbeans

```

Salu2.

----------

## Stolz

Para integrar las lineas de un fichero como  una sola línea de tu comando puedes usar el comando xargs. Por ejemplo, para el fichero lista-paquetes.txt

```
cat lista-paquetes.txt | xargs emerge -pv
```

También puedes usarlo directamente sin fichero intermedio

```
comand_que_genera_lista_paquetes | xargs emerge -pv
```

y por supuesto no estás limitado al comando emerge. Puedes por ejemplo abrir en tu editor todos los ficheros que contengan la palabra "error"

```
grep -rl error . | xargs $EDITOR
```

----------

## papu

 *opotonil wrote:*   

>  *Quote:*   
> 
> ejemplo: 
> 
> instalar 
> ...

 

enric@Ordinador ~ $ sudo emerge -av kscd

```
These are the packages that would be merged, in order:                                                                   

                                                                                                                         

Calculating dependencies                        ... done!                                                                

[ebuild  N     ] media-libs/libdiscid-0.3.0  USE="-static-libs" 337 kB                                                   

[ebuild  N     ] media-libs/musicbrainz-3.0.3:3  USE="{-test}" 104 kB                                                    

[ebuild  N     ] kde-base/libkcompactdisc-4.9.5:4  USE="alsa (-aqua) -debug" 76 kB                                       

[ebuild  N     ] kde-base/kscd-4.9.5:4  USE="(-aqua) -debug" 94 kB                                                       

                                                                                                                         

Total: 4 packages (4 new), Size of downloads: 609 kB
```

enric@Ordinador ~ $ sudo emerge -cp kscd

```
Calculating dependencies             ... done!                  

>>> Calculating removal order...

>>> These are the packages that would be unmerged:

 kde-base/kscd

    selected: 4.9.5 

   protected: none 

     omitted: none 

All selected packages: kde-base/kscd-4.9.5

>>> 'Selected' packages are slated for removal.

>>> 'Protected' and 'omitted' packages will not be removed.

Packages installed:   1201

Packages in world:    338

Packages in system:   42

Required packages:    1200

Number to remove:     1
```

enric@Ordinador ~ $ sudo emerge -pv kscd|cut -d']' -f2 |cut -d' ' -f2 > kscd 

enric@Ordinador ~ $ sudo emerge -Cp `< kscd`

```
* This action can remove important packages! In order to be safer, use

 * `emerge -pv --depclean <atom>` to check for reverse dependencies before

 * removing packages.

>>> These are the packages that would be unmerged:

 media-libs/libdiscid

    selected: 0.3.0 

   protected: none 

     omitted: none 

 media-libs/musicbrainz

    selected: 3.0.3 

   protected: none 

     omitted: none 

 kde-base/libkcompactdisc

    selected: 4.9.5 

   protected: none 

     omitted: none 

 kde-base/kscd

    selected: 4.9.5 

   protected: none 

     omitted: none 

All selected packages: kde-base/kscd-4.9.5 kde-base/libkcompactdisc-4.9.5 media-libs/libdiscid-0.3.0 media-libs/musicbrainz-3.0.3

>>> 'Selected' packages are slated for removal.

>>> 'Protected' and 'omitted' packages will not be removed.
```

----------

## _______0

con la lista que pusiste los dos:

```
emerge -pv $(cat netbeans.txt)
```

y

```
emerge -pv `cat netbeans.txt`
```

funcionan perfectamente.

Por lo que sospecho que tu lista pudiese tener espacios blancos al principio o al final de cada paquete o tu cascara esta rota.

mm... otro truquillo que mola para serializar una columna:

```
echo $(cat netbeans.txt)

java-virtuals/jaf dev-java/mimepull dev-java/beansbinding dev-java/jtidy dev-java/jsr181 dev-java/jsr67 dev-java/javassist dev-java/absolutelayout dev-java/glassfish-transaction-api java-virtuals/saaj-api dev-java/trove dev-java/jrexx dev-java/concurrent-util dev-java/servletapi dev-java/stax-ex dev-java/ehcache dev-java/fastinfoset dev-java/saaj dev-java/xmlstreambuffer dev-java/asm dev-java/cglib dev-java/aspectwerkz dev-java/cglib dev-java/netbeans-java dev-java/netbeans-nb dev-java/netbeans-profiler dev-java/netbeans-apisupport dev-java/netbeans-javafx dev-util/netbeans
```

^^^ mola.

mira otros trucos en my pregunta ->> https://forums.gentoo.org/viewtopic-t-947238-start-0-postdays-0-postorder-asc-highlight-.html

ps: porque guardas la lista con tipo .txt?? Esto no es M$$$$$$$, sabias??

----------

## papu

 *_______0 wrote:*   

> 
> 
> mira otros trucos en my pregunta ->> https://forums.gentoo.org/viewtopic-t-947238-start-0-postdays-0-postorder-asc-highlight-.html
> 
> 

 

gracias,  en ese hilo he preguntado y me han dado la/s  solucion/es

https://forums.gentoo.org/viewtopic-p-7222362-highlight-.html#7222362

ad1

----------

