Difference between revisions of "Gentoo"
Porcelinux (talk | contribs) |
|||
Line 123: | Line 123: | ||
** ''NOT> use_name'' - ''Use description'' '''Use Negata, ovvero con il segno "-" davanti. es. -kde , -gnome''' | ** ''NOT> use_name'' - ''Use description'' '''Use Negata, ovvero con il segno "-" davanti. es. -kde , -gnome''' | ||
** ''! use_name'' --> ''Use flag NOT FOUND !'' '''Use non trovata nel file /usr/portage/profiles/use.desc | ** ''! use_name'' --> ''Use flag NOT FOUND !'' '''Use non trovata nel file /usr/portage/profiles/use.desc | ||
<syntaxhighlight lang="bash" > | |||
. /etc/make.conf | . /etc/make.conf | ||
USEfile=/usr/portage/profiles/use.desc | USEfile=/usr/portage/profiles/use.desc | ||
Line 144: | Line 144: | ||
done | done | ||
echo "newuses: $newuses" | echo "newuses: $newuses" | ||
</syntaxhighlight> | |||
* mad ''''questa use aggiunge il supporto per mpeg2 audio, xile-lib per esempio'''' | * mad ''''questa use aggiunge il supporto per mpeg2 audio, xile-lib per esempio'''' |
Revision as of 18:03, 19 January 2012
- Gentoo Linux
bla bla
- Gentoo Linux
- benefits and reasons, why do I use it:
- I have it installed only on my main computer at home. Not at workplace.
- every new or updating package, has to be done running through its internal parts. VLC for example could be compiled to support only a video/audio codec or visual interface.
- gives me an historical-technical view of the open-source evolution and its communities interactions.
Gestione de Software e repositori (portage)
- Il comando per lavorare sul software installao/installabile di Gentoo è emerge.
Portage Overlays
Un Portage overlay serve ad estendere il portage ufficiale di gentoo: Si imposta dichiarando e assognando gli la/le directory addizionali alla variabile in make.conf
PORTDIR_OVERLAY
nel file
/etc/make.conf
- Si possono aggiungere rami al protage anche con layman.
layman -L list * bangert [Subversion] (source: http://overlays.gentoo.org...) * cell [Subversion] (source: http://overlays.gentoo.org...) * chtekk-apps
- thanks to nthrbldyblg
for i in /var/db/pkg/*/*; do if ! grep gentoo $i/repository >/dev/null; then echo -e "`basename $i`\t`cat $i/repository`"; fi; done
Masking
- il sistema è un po complesso ma molto efficace e personalizzabile: tutti i pacchetti hanno dei tipi di versione; stable, unstable, masked e hard masked
Unstable packages
- to mask ..
/etc/portage/package.keywords
- or, if you have it in directory structure,
/etc/portage/package.keywords/package
Masked packages
- to unmask a package, add its atom in
/etc/portage/package.unmask
- to mask ..
/etc/portage/package.mask
License Masked
!!! The following installed packages are masked: - dev-java/blackdown-jdk-1.4.2.03-r15 (masked by: sun-bcla-java-vm license(s))
- to accept all licences, add:
ACCEPT_LICENSE="*"
to /etc/make.conf
emerge command
- Aggiornare tutto il sistema
questi comandi calcolano le dipendenze e ci mostrano gli aggiornamenti, senza installare niente
emerge --deep --update -pvt world emerge --deep --update -pvt system
- se tutto va bene, aggiorniamo.
emerge --deep --update world emerge --deep --update system
emerge --update --newuse --deep @world --with-bdeps y -pvt
- this option will do emerge skip packages that not compile
emerge --keep-going
- manual command line version of the "keep-going" option ...
emerge <options> world || until emerge --resume --skipfirst; do :; done
- Or
while true; do emerge --resume --skipfirst && break; done
- or
while true; do read a; ( [ $a == "q" ] || [ $a == "x" ] ) && break; done
dependencies
- Rebuild broken connection between packages
revdep-rebuild -p
eix utility
- list all packages installed:
eix-I
- list in compact mode
eix -c
- list installed packages from a given overlay
eix -I --installed-from-overlay OVERLAY_NAME
USE Flags
- Use flags are words associated to a package controlling its composing parts and the interaction with other packages.
- example use flag:
USE="bluetooth"
Will enable the inclusion of bluetooth support in all the applications compiled into the system.
USE="-bluetooth"
Will instead disable the support for all packages.
globals (all system)
- A global use flag, to say it poorly, is the one you set only once and has effect on all the packages in your system.
You can set it in the (VIF) file
/etc/Make.conf
locals (package)
documentation of each local flag is in the file /usr/portage/profiles/use.local.desc
script "comodo" to check use flags
- see also
- restituisce le use definite globalmente, prima descrivendone una per una
poi tutte su una riga, togliendo quelle non trovate nel use.desc ( $USEfile ).
- Output
- use_name - Use description
- NOT> use_name - Use description Use Negata, ovvero con il segno "-" davanti. es. -kde , -gnome
- ! use_name --> Use flag NOT FOUND ! Use non trovata nel file /usr/portage/profiles/use.desc
. /etc/make.conf
USEfile=/usr/portage/profiles/use.desc
if ! [ "x$1" == "x" ]
then USES="$1"
else USES=$USE; fi
newuses=""
for thisuse in $USES; do
desc=""
ABSflag=`echo $thisuse|sed -e s/-//`
# echo ">> Use Flag [ $a ] "
if ( `grep -q ^$ABSflag $USEfile` )
then
[ "$ABSflag" == "$thisuse" ] || desc="NOT> "
desc="$desc "`grep "^$ABSflag" $USEfile`
newuses="$newuses $thisuse"
else
desc="!$ABSflag --> Use flag NOT FOUND !" ; fi
echo $desc
done
echo "newuses: $newuses"
- mad 'questa use aggiunge il supporto per mpeg2 audio, xile-lib per esempio'
equery command
- get package name from give file (with full path)
equery b /path/to/the/file
- get packages depending on given package, it also guess wich use flag pulls it.
equery d package-name
ebuild command
- if you have an .ebuild package to push into the portage, you can do it with this command.
ebuild beautiful-program-0.1.ebuild digest
- then install the package
emerge beautiful-program
if you don't know what it means, just forget it
creating an ebuild for a new package
Installare un programma che non è nel portage, con un .ebuild:
- La prima cosa è creare una directory, stile portage, dove copiare il file .ebuild del programma da installare:
come esempio userò il pacchetto "media-soud/xmms2":
vi /etc/make.conf
con la variabile
$PORTDIR_OVERLAY
specifico uno o + (separati da spazi) portage addizionali. Quindi aggiungo in coda a make.conf questa linea (se non c'è già, in quel caso alcuni passi si possono saltare)
PORTDIR_OVERLAY="/usr/local/portage"
creo la directory (portebbe già esistere)
mkdir -p /usr/local/portage/
ci entro
cd /usr/local/portage/
creo la directory per xmms.
mkdir -p media-sound/xmms2/
..ci entro
cd media-sound/xmms2/
scarico l' ebuild
wget http://stuge.se/gentoo/media-sound/xmms2/xmms2-0.2.ebuild
- ora con il comando ebuild e il parametro "digest", lo facciamo "digerire" al sistema.
ebuild xmms2-0.2.7.ebuild digest
io uso eix per sfogliare il repositorio, comunque il pacchetto xmms2 ora è pronto per essere emerg-ato.
update-eix emerge -pvtD xmms2
e infine
emerge xmms2
cleaning up the system (brute way)
- portage temp files: 'be very careful with this commands, they DESTROY everywhere they go
- first upgrade the system, repair all broken dependencies with revdep-rebuild.
- then cd to /var/tmp and purge temporary files
cd /var/tmp
rm -rf portage/* ccache/* binpkgs/* genkernel/*
... It's not working
- 99% of the times when something does not work on Gentoo linux is because some broken link between packages/applications. And at these times, the 99% of the times the solution is to re-compile (re-emerge) the package.
the mouse/keyboard does not work anymore
emerge -1 x11-drivers/xf86-input-evdev
... or whatever...
Kernel management
- get a list of available vanilla sources from kernel.org:
eix sys-kernel/git-sources
- get available gentoo patched kernel:
eix sys-kernel/gentoo-sources emerge -D sys-kernel/git-sources
genkernel
- Genkernel tool