# Easy Gentoo - Gentoo Installation Script

## shdcn

Hi everyone,

I was trying to find an easier Gentoo install method for years. I ran into outdated scripts, read tons of pages, had too many headaches and I started writing a script for myself when i lost hope  :Smile:  Finally I have a script that gets me what I need. This bash script is basically a group of commands listed in Gentoo Handbook but does more than just executing them all. It does every little configuration change that is necessary.

I was targeting Turkish Gentoo users at first so it had all echos etc in Turkish. But I translated (at least I tried ^^) it to English because I decided to stop improving it. I don't have enough time to test, fix, update it anymore. Someone else may do that from now on. That's why I'm writing this post.

So what does that script do?

Easy Gentoo uses a profile to get information it needs from you and installs Genoo based on that profile. Installation is automated, you won't need to interfere. Script does its job and in the end it executes a shutdown. It is even easier than it sounds.

I tried to make every little detail as good as possible and there are lots of things that Easy Gentoo does. The best way to inspect them all is to give it a try i guess.

For example: I did 3-4 installs today on a virtual machine using Easy Gentoo; one of them was a 64bit install with a ready to use Xfce desktop using vesa at 1920x1080, another one was a 32bit basic install which doesn't have X.

Note: Script uses stable packages, it doesn't/can't do an unstable install.

It is important for you to read this before using Easy Gentoo: https://github.com/shdcn/easygentoo/blob/master/README.md

These are some of the main steps (to give you an idea about installation).

For more information please take a look at https://github.com/shdcn/easygentoo/blob/master/installation_steps.txt

*** Steps for basic install ***

 1- Check if necessary tools/commands are available to continue (like cut, grep, wc, sed, awk, mkfs.foo)

 2- Format partitions

 3- Mount partitions

 4- Check mirrors (not a mirrorselect)

 5- Download and extract latest stage3 tarball and portage snapshot

 6- Continue inside chroot

 7- Create a temporary make.conf

 8- Emerge portage and some tools

 9- Create locale.gen

10- Update make.conf and create package.use

11- Do a controlled "emerge -e system"

12- Kernel compilation (genkernel) with lots of needed settings/drivers

13- Emerge grub and create grub.conf

14- Create/update configuration files (localtime, keymaps, hostname, etc)

15- Change locale based on keymap

16- Change root password and create user

17- Update /etc/sudoers and .bashrc

18- Unmerge unnecessary packages and do "emerge -uDN world"

*** Steps for normal install ***

    --- Emerge xorg-server and create xorg.conf

    --- Emerge and configure Xfce

    --- Emerge and configure LightDM Login Manager

    --- Configure evdev

    --- Emerge NetworkManager

    --- Emerge and configure Alsa

19- Purge unnecessary man pages etc. (localepurge)

20- Create a small report about whole process.

21- Delete temporary files that were created by script

22- Shutdown computer

Script is located at https://github.com/shdcn/easygentoo repository.

Direct download link: https://raw.githubusercontent.com/shdcn/easygentoo/master/easygentoo

Profile description: https://github.com/shdcn/easygentoo/blob/master/profile

Example profiles:

https://github.com/shdcn/easygentoo/blob/master/profile.example.1

https://github.com/shdcn/easygentoo/blob/master/profile.example.2

https://github.com/shdcn/easygentoo/blob/master/profile.example.3

Screenshots:

http://imgur.com/a/OgWLN#0

http://imgur.com/a/ujDdT#0

Update (29.05.2014):

Easy Gentoo is now using systemd, grub2, genkernel-next and lightdm

improved stage tarball and network adapter handling

added a new profile setting: autonet (yes/no) - enables or disables network connection handling (ping check, reconnect), disable if you want to handle your connection on your own when a problem pops out

Edit (11.03.2012):

Added detailed installation steps

Edit (15.02.2013):

I have added some tested changes to script. Pulseaudio is disabled, Alsa replaced it. It compiles 36 less packages than before (previous tests had a total of 440 packages included in a normal install, now it is 404) and has improved config file handling now. Added some screenshots. README had some changes too.Last edited by shdcn on Thu May 29, 2014 2:59 pm; edited 4 times in total

----------

## windex

Thanks!  I'll have to give this a shot!

----------

## rookieljw

 :Razz:   thx but I recommand that do original way to do it,because we can learn something during install gentoo  :Wink: 

----------

## shdcn

I agree that normal Gentoo installation procedure is very educating but it takes too much user input to get a system working. This is a little tiring if you don't have enough time or when you need multiple installations in a short period.

I believe this script may save the user a lot of time. I did some improvements/cleaning since my first post here and still trying to make it better. It's still not perfect but installing Gentoo with "2-3 commands + 10-15 words of config" is very entertaining from my point of view ^^

Besides that, normal way is always there to teach us more  :Smile: 

----------

## justabrain

i make my register just to say thank you !

amazing job, im new in linux world, but im learning, and i never can install gentoo before, but with your script, its very easy !

thank you very much !!!

----------

## shdcn

You're welcome  :Smile:  Hope it serves you well.

----------

## justabrain

very well ! thank you ! im in love with gentoo :]

----------

## cryptosteve

Hmm,

one day too late.  :Smile: 

I switched a box from debian to gentoo some days ago ... so I can't test your script now.  :Smile: 

----------

## shdcn

My bad, I should post earlier ^^ Hope you use your new Gentoo for a long time and won't need my script  :Smile: 

----------

## Hypnos

You might want to write up your work on the wiki, and link to it from this page.

----------

## shdcn

Nice idea Hypnos, I'll do it as soon as possible. Thanks for reminding me.

----------

## cryptosteve

 *shdcn wrote:*   

> Hope you use your new Gentoo for a long time and won't need my script 

 

Sure I will use my new Gentoo for a long time but I have new machines from time to time which calls for new Gentoo installations  :Smile: 

----------

## shdcn

I'm trying to create a modified version for Dell XPS 15z as justabrain requested and it includes Brazilian (pt_BR) localization.

I added pt_BR related parts to the original script too. So the script can handle three locales now; English, Brazilian and Turkish.

----------

## shdcn

Easygentoo works fine on a PC but it needs some tinkering for laptops (to get a ready to use system). Because I couldn't find a laptop for testing until yesterday. Now I'm torturing poor little thing with endless compiles to make sure everything is fine.

----------

## shdcn

I made some little changes (kernel config, USE flags, packages etc.) and had some installs on my laptop to test them all. Everything is working fine.

----------

## dataking

 *rookieljw wrote:*   

>   thx but I recommand that do original way to do it,because we can learn something during install gentoo 

 

In situations where one is building multiple gentoo boxen and/or VMs, something like this is quite handy.  The assumption there is that the education is over, and you just need the system(s) built.  I've built my own script for this purpose, though it really isn't as robust as this one.

Although, it does do the disk partitioning.   :Wink:   Not sure why the original author doesn't handle that.

----------

## shdcn

 *dataking wrote:*   

> Not sure why the original author doesn't handle that.

 

Actually I don't know why I didn't include disk partitioning but I'll try to do that.  :Smile:  Is it possible for you to share your partitioning code with me to make it an easier job?

----------

## shdcn

Looks like some changes were made to mirrors (directory layout) and now my script is having problems while trying to download stage3 tarball and portage snapshot. Trying to fix it at the moment.

Edit:  Fixed it temporarily. Looking for a better solution but script is working for now.

----------

## dataking

 *shdcn wrote:*   

>  *dataking wrote:*   Not sure why the original author doesn't handle that. 
> 
> Actually I don't know why I didn't include disk partitioning but I'll try to do that.  Is it possible for you to share your partitioning code with me to make it an easier job?

 

Sent you a PM.

----------

## maxim.251

Can you show me the script that performs the chroot command on?

Because I'm going to write my own script setup similar to yours. But I can not understand how to get work from reading or writing the script for further work in chroot.

 *Quote:*   

> 6- Continue inside chroot

 

----------

## maxim.251

I think I have found. Is this command, go to the root and it  takes next operations?

```
start() {

    export SHELL=$(which bash); setterm -blank 0; cl

    

    eg="easygentoo"; profile="profile"; vl="variables"; mnt="/mnt/gentoo"

    lt="latest-stage3.txt"; compiled="compiled.txt"

    

    [[ -e "/chroot.eg" ]] && inside || { intro; check; prepare; get_tar; move; }

    exit 0

}
```

[/code]

----------

## shdcn

First of all Easy Gentoo has a two main parts; before chroot and after chroot. I may change some parts/names in the code to make it simpler to understand. So you won't be able to find below lines inside the original code. Here are the details:

When executed, script checks if we are inside chroot or not. This is the code that runs first and does this check:

```
[[ -e "/chroot.eg" ]] && after || before
```

(if chroot.eg file exists, it means we are inside chroot)

If chroot.eg doesn't exist, it executes before part and when that part finishes, script does three things:

1) copies itself with 

```
cp easygentoo /mnt/gentoo &>/dev/null
```

2) creates an empty file in the root dir of installation with 

```
touch /mnt/gentoo/chroot.eg &>/dev/null
```

3) executes its copy from new target with 

```
chroot /mnt/gentoo $(which env) -i TERM=$TERM sh easygentoo
```

The second instance of script confirms that chroot.eg exists and executes after part.

That part you just wrote is the first function that runs when script is executed and checks if we are inside chroot (as i explained above).

----------

## maxim.251

Thank you very much. This is very helpful.

Even I did not understand how is make start script in the chroot, but this explanation is fast approaching me to understand.

Thank you for your response.  :Smile: 

it seems to me that your installation script is the first ever made. Because nowhere in the network have not found similar.

----------

## maxim.251

Also, I noticed an interesting way to install packages.

Is not that a problem for you if you described to me the action in short? As the above?

----------

## siljrath

thnx, nice to see some other people's efforts.

i made (amidst other grander plans) an interactive installation script for gentoo (with intent of adding others too).   when it started, the idea was a simple interactive handbook walkthrough, so that the user would still be learning the handbook content through the interactive installation process.

the priority of inclusion of handbook content got a little lost in the wild fray of other aspirations, but a lot of it is still in there.

it was working on last test... but who knows after subsequent changes (i know the step-by-step testing guide no longer fits since the refactoring, but i'm sure if you're interested enough you can figure it out)

https://github.com/Digit/witch

i'll definately be having more looks into these other ways, profiles, and so on.

----------

## maxim.251

Welcome.

Yesterday I did a little change. I tested the ruler to learn how the code works.

I had a small problem, but solved it in this way.

Now showing all programs that are in the system or not.

I can later add, what program does not exist, and then to be written to the file.

And later mising programs can be inslalate.

```
#!/bin/bash

# here is programs what I need. Gentoo is word what I want to be a test. to see what happend if one program will be mising.

potrzebne="awk bash cat gentoo chmod chroot clear cp cut fdisk free grep ip loadkeys md5sum mkdir mount mv rm sed setterm sha512sum sleep swapoff swapon tar touch tr umount wc wget"

exist() {

    

    which ${1} &>/dev/null && (echo "  * ${1} exists ";sleep 0.5s ) || (echo "  * ${1} not" )

    #echo $prog

}

for b in ${potrzebne}

    do

        exist "${b}"

done
```

Last edited by maxim.251 on Tue Aug 20, 2013 6:07 am; edited 1 time in total

----------

## maxim.251

 *siljrath wrote:*   

> thnx, nice to see some other people's efforts.
> 
> i made (amidst other grander plans) an interactive installation script for gentoo (with intent of adding others too).   when it started, the idea was a simple interactive handbook walkthrough, so that the user would still be learning the handbook content through the interactive installation process.
> 
> the priority of inclusion of handbook content got a little lost in the wild fray of other aspirations, but a lot of it is still in there.
> ...

 

 Nicely.

Your script needs a lot of work.

I have a simpler idea for a script, but targeted only for Gentoo.

I want to make the installation process which will no wrong. And every time on each computer will install.

  And you can select multiple variables during installation.

Such as "user" "password", etc..

And most importantly, show the ruler of each executed task, in order to accurately track the installation process. If something goes wrong, you will know the moment when an error occurs.

  I hope it will not be that.

  Now I need a lot of learning, I just started writing scripts.

I'm thinking on how make config automatically kernel.config for drivers.

  For me, it has always been a problem  to find what driver I need .

  "lsmod" I think the ideal solution.

I do not know if lsmod is enough.

----------

## maxim.251

I add function what is make file whit programs mising on system.

Later I write line whit "emerge" this programs.

File what make i call "brakuje.sh" - in english "missing.sh"

In this file is written programs what is missing.

This line can be using to emerge all package needed for complate install gentoo. 

I hope that some one else use my script in his one instalation.  :Smile: 

```
#!/bin/bash

rm brakuje.sh

clear

echo "Looking for missing programs"

sleep 3

clear

potrzebne="awk bash cat gentoo chmod genkernel chroot clear cp cut fdisk free grep ip loadkeys md5sum mkdir mount mv rm sed setterm sha512sum sleep swapoff swapon tar touch tr umount wc wget"

exist() {

    

    which ${1} &>/dev/null && (echo "  * ${1} exists ";sleep 0.5s ) || (echo "  * ${1} not";echo ${1} >> brakuje.sh )

    #echo $prog

}

for b in ${potrzebne}

    do

        exist "${b}"

done

d=`cat  brakuje.sh`

sleep 3

clear

echo "Find missing programs:..."

echo ""

sleep 2

#echo "Programs what missing is: $d"

for c in $d

  do

  #echo ""

  sleep 0.5s

  echo $c " :--this program is missing"

done 
```

Just today I got the idea to write a script that will append new file to which tasks have been completed, so that the next time you start your computer, the script will be able to perform the next command.

These are all ideas that have been inspired by EasyGentoo and creator called "shdcn"    :Very Happy: 

----------

## shdcn

Hi maxim.251,

1) Package installation

I will try to explain the package installation without codes because this part has lots of details and may easily confuse you more. Hope it helps.

I use a combination of functions to install packages. make_list function creates a list of packages that will be installed by current command. Then the fetch function starts to download the packages in the background, one by one, according to that list. fetch function creates an other list of succesfully downloaded packages. At the same time, the compile function monitors that second list and waits until there is a package name. If it detects a package name (which means that this one is downloaded and ready to be compiled), it starts compiling it. If compilation is succesful, the name of the compiled package will be removed from the first packages list. This goes on until the list ends and there are no packages to install for current command.

2) Kernel config

I use a template kernel config for EasyGentoo (https://raw.github.com/shdcn/easygentoo/master/easygentoo.config). It is easier to have a working kernel this way.

3) Your code

I guess you are trying to create a script which will be used to detect missing packages and you want it to log these. If that is the case I would write your script like this:

```
#!/bin/bash

exist() {

    which ${1} &>/dev/null && { echo "  * ${1} exists"; sleep 0.2s; } || { echo "  * ${1} doesn't exist"; echo "${1}" >> brakuje.log; }

}

rm -rf brakuje.log

clear; echo; echo "Looking for missing programs"; echo; sleep 3s

potrzebne="awk bash cat gentoo chmod genkernel chroot clear cp cut fdisk free grep ip loadkeys md5sum mkdir mount mv rm sed setterm sha512sum sleep swapoff swapon tar touch tr umount wc wget"

for m in ${potrzebne}

do

    exist "${m}"

done

exit 0

```

This code prints every existing/missing package to screen and writes every missing package to brakuje.log. If you want to install these missing packages, then you may add something like this before the "exit 0" line:

```
while read package_name

do

    emerge -q ${package_name}

done < brakuje.log

```

But remember this; the name of a command and the name of its package may not be the same.

----------

## shdcn

Hi siljrath,

Looks like I walked the same path as you while creating mine  :Smile:  I will definitely take a look in your script and I'm pretty sure that I will learn more from it. Thanks for sharing.

----------

## NeddySeagoon

Moved from Installing Gentoo to Documentation, Tips & Tricks.

Moved here from Installing Gentoo as its not a support request

----------

## maxim.251

I needed this file brakuje.sh to retrieve the name of the program to be installed.

and used for the subsequent installation

Well your code looks interesting.

Especially this line

```
while read package_name

to

     emerge-q $ {package_name}

done <brakuje.log
```

```
done <brakuje.log
```

I did not know that it is possible to write to directly read from the file.

For this use the variable $ d to read from the file and did not know that it is simpler way.

And thank you for writing to me about the installation of packages.

is a interesting way.

I already wrote my kind of code.

Test of instaling missing programs.

At the time of installation  Press "n"

the script will think that the program is installed.

I did it just for a test to see how the code behaves if the installation is successful.

```
#!/bin/bash

time=1 #put the time of wait

start()

{

  rm brakuje.sh 

  clear 

  echo "Looking for missing programs" 

  sleep 3 

  clear 

  potrzebne="awk bash genkernel ufed cat coreutils dialog chmod chroot clear cp cut fdisk free grep gparted loadkeys lm_sensors md5sum mkdir mount mv rm sed setterm      sha512sum sleep swapoff swapon tar touch tr umount wc wget" 

  exist() 

{ 

   which ${1} &>/dev/null && (echo "  * ${1} exists ";sleep 0.5s ) || (echo "  * ${1} not";echo ${1} >> brakuje.sh ) 

      

} 

for b in ${potrzebne} 

do 

   exist "${b}" 

done 

d=`cat  brakuje.sh` 

sleep 3 

clear 

echo "Find missing programs:..." 

echo "" 

sleep 2 

for c in $d 

do 

    

   sleep 0.5s 

   echo $c " :--this program is missing" 

done

sleep 2

instalacja

}

emergeProgr()

{

   emerge -av $1 #| grep "jest już"  #tr -s '[:blank:]' ' '| grep Budowanie #2> /dev/null #??

   #echo "test, tak na prawdę teraz nic się nie intsaluje z powodów bezpieczeństwa"

   sleep $((time+1))  

}

clear

pobieranie()

{

   clear

   echo "I take program from file to be install"

   prog=`cat brakuje.sh`

}

doinstalowania()

{

for zs in $prog

do 

   echo "Pakage to be installed is : $zs"

   sleep $time

done

}

clear

instal()

{

   echo "Instaling package start"

   sleep $time

   for zm in $prog

   do

      clear

      echo "instalowanie $zm"

      sleep $time

      emergeProgr $zm #instaling from list $prog

   done

   #clear

   echo "Instaling is finish"

   sleep $time

}

koniec_instal(){

   clear

   zainstalowane=$prog

   echo "Package what is instaled is : $zainstalowane"

}

start

pobieranie

doinstalowania

instal

koniec_instal
```

What do you think?

If you run it please tell me what you think about this code?

----------

## PsykoNerd

if you made a script for virtualbox that would help folks too

----------

## maxim.251

I found something interesting. I know this is off topic.

But I think anyone looking for an easy way to install the whole environment.

Toorox is a great replacement for those who do not have time to bother with commands. A system then adjusts himself.

  Of course, you still need to recompile the whole system. But the work is in the final environment

Here is the link.

http://toorox.de/index.php/en/

It is for these reasons I was looking for an easier way. I learned to write in bash to make simpler to install gentoo.

But it still does not stop me from writing the script. Because it's fun for me.   :Very Happy: 

----------

## maxim.251

 *PsykoNerd wrote:*   

> if you made a script for virtualbox that would help folks too

 

Never tested on virtualbox.

I do not like this program and always tested in the real machine.

It seems to me that it should work on virtual box if you have an Internet connection.

It's finally a set of commands in a single file.

----------

## seqizz

Nice to see gentoo users from turkey. It'd be better if I can help. I'll be looking. Hope I won't have seizures from bash overload.

----------

## NY152

Bonjour,

Je voulais me lancer en douceur sur Gentoo alors j'ai voulu tenter l'installation avec votre script.

Chose étrange il me dit ceci :

Looks like there aren't any network adaptaters. Setup is unable to continue. Exit now...

Je dis étrange car Internet est fonctionnel sur la machine où je tente l'installation.

Une idée pour éviter ce message ?

----------

## seqizz

 *NY152 wrote:*   

> Bonjour,
> 
> Je voulais me lancer en douceur sur Gentoo alors j'ai voulu tenter l'installation avec votre script.
> 
> Chose étrange il me dit ceci :
> ...

 

try adding your interface name (you can see with "ip link" or "ifconfig" commands) to script's 1344. line (whatever it is, not in the list: eth0 eth1 eth2 eth3 eth4 eth5)

// edit: typo

----------

## bartos

Hi

I want to use your script to install gentoo to a spare partition. I would like to be able to run it from my arch install and then boot into Gentoo.

A question.

It says "Please move the script to /root and start it again". when i run it from arch partition. Is this the /root on the partition i want to use cause I tried it from my arch /root and nothing happened.

Thanks

----------

## HardenedMetapod

For me the script locks up after "Getting latest tarball name..." Any ideas?

```

* Getting latest tarball name...

   Latest tarball:   stage3-amd64-20130620

20131010

20131031

20131024

20131031.tar.bz2

```

----------

## maxim.251

Hello, the last time I wrote a few months ago. I see that have made a fix and wrote partitioning. but there is one problem, because when the root partition the disk, it cleans the entire disk and it is time-consuming. Do you can change fast partitioning the root partition?

----------

## vhristev

 *HardenedMetapod wrote:*   

> For me the script locks up after "Getting latest tarball name..." Any ideas?
> 
> ```
> 
> * Getting latest tarball name...
> ...

 

I'm not sure if there is something wrong with new script version but you can fix it by hand. Go to Line 1751: 

tarball="stage3-${arch}-$(grep ${arch} ${lt} | cut -d'/' -f1 | uniq).tar.bz2"    

and change it to 

tarball="stage3-amd64-20131226.tar.bz2"     ( OR what ever stage3 you want ) 

save the script and run it again. 

Also if you want to use different mirror you can change for example US keyboard. Go to Line 1727: 

trq|trf keyb line 1724

br|us keyb line 1727

Here is example for US keyb

 br|us)

        mirrorlist="http://gentoo.supp.name ftp://mirrors.linuxant.fr/distfiles.gentoo.org http://ftp.linux.org.tr/gentoo ftp://ftp.linux.org.tr/gentoo"

    ;;

and change it to :

br|us)

        mirrorlist="YOUR_MIRROR_HERE"

    ;;

----------

## vhristev

Hello , 

I have other problem here is what i'm doing. 

Those tests was made in VM. 

1. Boot minimal gentoo CD 

2. Download eazyinstall + profile ( edit profile by my needs ). In easyinstall only edit is mirror list and tarball variable because it hangs if i do not edit it.

3. Start eazyinstall 

4. When stages are downloading my space is filled and there is NOT enough space . 

There is a step when script is telling me that disk is formated then mounted but those actions was not made. When i check disk is still not formated and there is no mounted partitions ( because there is no partitions ). 

Any ideas ?

BR

----------

## moisespedro

Thanks  :Smile:  You have no idea how I am happy to find this. I tried gentoo once, completed the install process (minimal), got mad at it and went back to slackware lol. You have no idea how confusing portage can be for a noob xD

Gonna try it again with this script

----------

## maxim.251

I found an interesting script, and in it a very interesting way to make chroot. I did not know that too, so you can do.

# chroot /mnt/gentoo emerge --sync

# echo '#!/bin/bash' > /mnt/gentoo/portage

# chroot /mnt/gentoo emerge syslog-ng vixie-cron slocate dhcpcd

# chroot /mnt/gentoo rc-update add syslog-ng default

# chroot /mnt/gentoo rc-update add vixie-cron

HAH!!! I found a bug in the script: D 

the script is not mine, but someone else, but that I test it, and I'm looking for interesting commands. 

Bug is already fixed. 

otherwise the file was not to fully script. 

The difference between the "xxx" and 'xxx' is such that "xx" performs special characters such as # 

and 'xxx' special characters are treated as normal

echo "#!/bin/bash" > /mnt/gentoo/portage -> echo '#!/bin/bash' > /mnt/gentoo/portage

```
#!/bin/bash

# GENTOO INSTALL SCRIPT FROM BASE INSTALL AND DEFAULT CONFIGS

# Created by: Morpheus (YYC)

#

# Display Introduction

echo "Welcome to the GENTOO install script, please note you must be at your system for instructions"

echo "this script will perform a majority of the configurations for you however certain interaction"

echo "may be required on your part."

echo

echo

echo "NOTE: THIS WILL RESULT IN DATA LOSS OF THE CURRENT DRIVE"

echo "Please press enter when your ready to continue."

read

# Configure hard disk

echo "The following is a list of found Hard Disk devices (sda/hda):"

ls /dev/ | grep -E [s:h]da$

echo

echo "Please enter the device you would like to install to:"

read HD_DEVICE

HDD="/dev/${HD_DEVICE}"

# warn user last time

echo

echo "THIS IS YOUR LAST CHANCE TO CANCEL, Press CTRL+C to cancel this install or ENTER to continue"

read

echo "p" | fdisk $HDD

echo "Please specifiy the total number of partitions:"

read PARTS

#TODO: add integer checking

echo -n "Generating fdisk operation file"

# Create fdisc auto file

((i = 1))

while (( i < PARTS ))

do

echo "d" >> fdisc.in

echo "$i" >> fdisc.in

((i += 1))

done

echo "d"    >> fdisc.in   # Delete last sector

echo "n"    >> fdisc.in   # New Partiton

echo "p"    >> fdisc.in   # Primary

echo "1"    >> fdisc.in   # Partion 1

echo ""    >> fdisc.in   # default

echo "+32M"    >> fdisc.in   # 32 MB size

echo "a"    >> fdisc.in   # Set flag

echo "1"    >> fdisc.in   # bootable

echo -n "."

echo "n"    >> fdisc.in   # New Partion

echo "p"    >> fdisc.in   # Primary

echo "2"    >> fdisc.in   # Partion 2

echo ""    >> fdisc.in   # default

echo "+512M"    >> fdisc.in   # 512 MB size

echo "t"    >> fdisc.in   # Set partition type

echo "2"    >> fdisc.in   # Partition 2

echo "82"    >> fdisc.in   # 82 = SWAP

echo -n "."

echo "n"    >> fdisc.in   # New Partition

echo "p"    >> fdisc.in   # Primary

echo "3"    >> fdisc.in   # Partition 2

echo ""    >> fdisc.in   # default

echo ""    >> fdisc.in   # new Line

echo -n "."

echo "w"    >> fdisc.in   # Write partion table

echo "q"    >> fdisc.in   # Quit

echo ". Done"

# Execute file

echo "Executing fdisk script ..."

echo

fdisk $HDD < fdisc.in

#clean up

rm -f fdisc.in

echo ""

echo "Partions created"

echo "Applying filesystem to partitions"

mke2fs /dev/${HD_DEVICE}1

mke2fs -j /dev/${HD_DEVICE}3

mkswap /dev/${HD_DEVICE}2

echo "Activating swap partition"

swapon /dev/${HD_DEVICE}2

echo ""

echo "Mounting partitions"

mount /dev/${HD_DEVICE}3 /mnt/gentoo

mkdir /mnt/gentoo/boot

mount /dev/${HD_DEVICE}1 /mnt/gentoo/boot

echo "Starting STAGE 3 Install"

echo ""

cd /mnt/gentoo

wget http://gentoo.osuosl.org/releases/x86/current/stages/stage3-x86-2008.0.tar.bz2

tar xvjpf stage3-*.tar.bz2

echo ""

echo "Installing portage..."

cd /mnt/gentoo

wget http://gentoo.osuosl.org/snapshots/portage-latest.tar.bz2

tar xvjf /mnt/gentoo/portage-latest.tar.bz2 -C /mnt/gentoo/usr

echo "Cleaning up..."

rm -f portage-latest.tar.bz2

rm -f stage3-x86-2006.1.tar.bz2

echo ""

echo "Getting ready to CHROOT"

cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf

mount -t proc none /mnt/gentoo/proc

mount -o bind /dev /mnt/gentoo/dev

echo "Chrooted"

echo "Updating portage..."

sleep 2

chroot /mnt/gentoo emerge --sync

echo "Patching portage..."

chroot /mnt/gentoo emerge portage

echo "Portage updated, downloading kernel source..."

sleep 2

echo '#!/bin/bash' > /mnt/gentoo/portage    # hire was a bug ( echo "#!/bin/bash" > /mnt/gentoo/portage )

echo 'USE="-doc symlink" emerge gentoo-sources' >> /mnt/gentoo/portage

chmod 700 /mnt/gentoo/portage

chroot /mnt/gentoo ./portage

rm -f /mnt/gentoo/portage

echo "#!/bin/bash" > /mnt/gentoo/portage

echo 'cd /usr/src/linux' >> /mnt/gentoo/portage

echo 'echo ""' >> /mnt/gentoo/portage

echo 'echo "***************************************************"' >> /mnt/gentoo/portage

echo 'echo "**            KERNEL CONFIGURATION               **"' >> /mnt/gentoo/portage

echo 'echo "***************************************************"' >> /mnt/gentoo/portage

echo 'echo "* You will now be prompted with the linux kernel  *"' >> /mnt/gentoo/portage

echo 'echo "*menu configurator, please ensure that you specify*"' >> /mnt/gentoo/portage

echo 'echo "*the right settings, as once you exit this script *"' >> /mnt/gentoo/portage

echo 'echo "*will compile and install the new kernel          *"' >> /mnt/gentoo/portage

echo 'echo "***************************************************"' >> /mnt/gentoo/portage

echo 'echo ""' >> /mnt/gentoo/portage

echo 'echo "Please press enter to continue"' >> /mnt/gentoo/portage

echo 'read' >> /mnt/gentoo/portage

echo 'make menuconfig' >> /mnt/gentoo/portage

echo 'make && make modules_install' >> /mnt/gentoo/portage

echo 'cp arch/i386/boot/bzImage /boot/originalKernel' >> /mnt/gentoo/portage

echo 'echo ""' >> /mnt/gentoo/portage

chmod 700 /mnt/gentoo/portage

chroot /mnt/gentoo ./portage

rm -f /mnt/gentoo/portage

echo "Generating FSTAB"

#GENERATE FSTAB

echo "# /etc/fstab: static file system information." > /mnt/gentoo/etc/fstab

echo "#" >> /mnt/gentoo/etc/fstab

echo "# noatime turns off atimes for increased performance (atimes normally aren't" >> /mnt/gentoo/etc/fstab

echo "# needed; notail increases performance of ReiserFS (at the expense of storage" >> /mnt/gentoo/etc/fstab

echo "# efficiency).  It's safe to drop the noatime options if you want and to" >> /mnt/gentoo/etc/fstab

echo "# switch between notail / tail freely." >> /mnt/gentoo/etc/fstab

echo "#" >> /mnt/gentoo/etc/fstab

echo "# The root filesystem should have a pass number of either 0 or 1." >> /mnt/gentoo/etc/fstab

echo "# All other filesystems should have a pass number of 0 or greater than 1." >> /mnt/gentoo/etc/fstab

echo "#" >> /mnt/gentoo/etc/fstab

echo "# See the manpage fstab(5) for more information." >> /mnt/gentoo/etc/fstab

echo "#" >> /mnt/gentoo/etc/fstab

echo "" >> /mnt/gentoo/etc/fstab

echo "# <fs>                  <mountpoint>    <type>          <opts>          <dump/pass>" >> /mnt/gentoo/etc/fstab

echo "" >> /mnt/gentoo/etc/fstab

echo "# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts." >> /mnt/gentoo/etc/fstab

echo "/dev/${HD_DEVICE}1               /boot           ext2            noauto,noatime  1 2" >> /mnt/gentoo/etc/fstab

echo "/dev/${HD_DEVICE}3               /               ext3            noatime         0 1" >> /mnt/gentoo/etc/fstab

echo "/dev/${HD_DEVICE}2               none            swap            sw              0 0" >> /mnt/gentoo/etc/fstab

echo "#/dev/cdroms/cdrom0      /mnt/cdrom      iso9660         noauto,ro       0 0" >> /mnt/gentoo/etc/fstab

echo "#/dev/fd0               /mnt/floppy     auto            noauto          0 0" >> /mnt/gentoo/etc/fstab

echo "" >> /mnt/gentoo/etc/fstab

echo "# NOTE: The next line is critical for boot!" >> /mnt/gentoo/etc/fstab

echo "proc                    /proc           proc            defaults        0 0" >> /mnt/gentoo/etc/fstab

echo "" >> /mnt/gentoo/etc/fstab

echo "# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for" >> /mnt/gentoo/etc/fstab

echo "# POSIX shared memory (shm_open, shm_unlink)." >> /mnt/gentoo/etc/fstab

echo "# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will" >> /mnt/gentoo/etc/fstab

echo "#  use almost no memory if not populated with files)" >> /mnt/gentoo/etc/fstab

echo "shm                     /dev/shm        tmpfs           nodev,nosuid,noexec     0 0" >> /mnt/gentoo/etc/fstab

cat /mnt/gentoo/etc/fstab

echo ""

echo "Configuring rc scripts"

chroot /mnt/gentoo rc-update add net.eth0 default

chroot /mnt/gentoo rc-update add sshd default

echo "*************** ROOT PASSWORD ********************"

echo "YOU ARE NOW REQUIRED TO ENTER A NEW ROOT PASSWORD "

echo "**************************************************"

chroot /mnt/gentoo passwd

echo "Installing tools..."

chroot /mnt/gentoo emerge syslog-ng vixie-cron slocate dhcpcd

chroot /mnt/gentoo rc-update add syslog-ng default

chroot /mnt/gentoo rc-update add vixie-cron

echo ""

echo ""

echo "Installing LILO"

chroot /mnt/gentoo emerge lilo

echo "boot=/dev/${HD_DEVICE}       # Install LILO in the MBR" >> /mnt/gentoo/etc/lilo.conf

echo "prompt                    # Give the user the chance to select another section" >> /mnt/gentoo/etc/lilo.conf

echo "timeout=50                # Wait 5 (five) seconds before booting the default section" >> /mnt/gentoo/etc/lilo.conf

echo "default=gentoo            # When the timeout has passed, boot the "gentoo" section" >> /mnt/gentoo/etc/lilo.conf

echo "" >> /mnt/gentoo/etc/lilo.conf

echo "# For non-genkernel users" >> /mnt/gentoo/etc/lilo.conf

echo "image=/boot/originalKernel" >> /mnt/gentoo/etc/lilo.conf

echo "        label=gentoo            # Name we give to this section" >> /mnt/gentoo/etc/lilo.conf

echo "        read-only               # Start with a read-only root. Do not alter!" >> /mnt/gentoo/etc/lilo.conf

echo "        root=/dev/${HD_DEVICE}3          # Location of the root filesystem" >> /mnt/gentoo/etc/lilo.conf

chroot /mnt/gentoo lilo

cd /

umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo

echo "Done"

echo "****************************"

echo "****************************"

echo "** SYSTEM WILL NOW REBOOT **"

echo "****************************"

echo "****************************"

sleep 5

reboot
```

----------

## maxim.251

I was working on my installer. 

The difference is that I shared facilities into categories, where it is easier to change at any case of any problems. 

I decided that I did not I turn to the installation partition, but still I think about it. 

But it seems to me that geparted enough for it to partition your hard drive. 

  My installation will be more focus on versatility and simplicity. 

I do not want to create the installer that the construction will be difficult. 

The installation will continue until xorg. 

I want to thank  for everything shdcn, is that thanks to him I myself started to create something of mine. 

That through his script, I myself decided to create something of mine. 

Thank you shdcn

Due to the fact that my post is long, I moved it to a new topic. 

Please look at my plants and write what you think.

https://forums.gentoo.org/viewtopic-p-7509528.html?sid=5afec088554ed5441bcadea3feecbe18

This is a Gentoo installation process. Based on the Gentoo Wiki and updates made ​​by me. 

The installation process has made ​​our lives easier. Since anyway we all need to install exactly the same way. So why bother clicking on the keyboard 3 days, if you can set the basic data and enable the auto installations, which will take one day.

----------

## shdcn

Hi everyone, I appreciate your valuable comments and efforts. Thanks a lot.

I was away from home for 5-6 months and couldn't keep an eye on Easy Gentoo. Looks like it needs some maintenance to work properly. Really sorry for all errors you had. I will control each single line of code in there and let you know when it's working again. 

maxim.251 you're welcome, I'm happy to see you create your own script, congratulations!

----------

## Polyatomic

 *shdcn wrote:*   

> Hi everyone, I appreciate your valuable comments and efforts. Thanks a lot.
> 
> I was away from home for 5-6 months and couldn't keep an eye on Easy Gentoo. Looks like it needs some maintenance to work properly. Really sorry for all errors you had. I will control each single line of code in there and let you know when it's working again. 
> 
> maxim.251 you're welcome, I'm happy to see you create your own script, congratulations!

 

How are you man. I would like to try this script to get Gentoo on one of my hard drives. I noticed the thread is over a year old... >.>  and was wondering if changes are required before I go ahead. Anyway I'll do some research and comeback later. Excellent script man.  :Very Happy:  0/

----------

## shdcn

Hi Polyatomic, thank you  :Smile:  Script is not working right now and needs some modification because of the changes in Gentoo. I have been working on that for a while and looks like script is almost ready. There are only a few little things left (for ex. systemd settings). Hope to finish it really soon. Will let you know as soon as it is ready to use ^^

----------

## shdcn

Finally I fixed some important errors and made little improvements. To sum it up: "Easy Gentoo is now using systemd, grub2, genkernel-next and lightdm. It has better stage tarball and network adapter handling. We have a new profile setting: autonet"

Updated first post and uploaded script to github. Hope it serves you well. I'm still testing with different setups, let me know if you see anything that goes wrong. Just in case, use this script on a virtual machine first ^^

----------

## yagami

shdcn:

Congrats on these developments.

Currently i have no need to install gentoo, had a month ago or so. But i think this is great value for Gentoo.

What can i do to help ?

----------

## yagami

PS:

The way you are developing the "gentoo easy install" is pretty much what i want.

From a quick look, the profile configuration is very nice.

Maybe a global profile that has a set of profiles, more like "normal gentoo profile" ( like packages and user and normal stuff ) and a "hardware gentoo profile" where one would configure the machine hardware

Also support maybe for a world package, so one would only specify a world package and it would install.

It would be nice if later on, we would have "Gentoo community editions", where we could exchange profiles and it would "recreate the edition".

Will take a look more closelly when I get out from work!

----------

## shdcn

Thank you yagami, for your support  :Smile: 

I'd like to hear pros/cons and any ideas like the ones you named. Cause I'm not really sure about what to do next on my script. It has too much code and functions need some organizing. Maybe a rewrite from scratch is what I should do.

I'll think of something when I have enough time. Anyways, happy to see positive feedback, thank you again for that.

----------

## elmie

this is awesome script. thanks for coming up with one.

I must admit after installing/reinstall Gentoo a few hundred times the process does get tiring. and this script will speed things up.

Although as others has suggested that installing it is the whole point of the exercise, which is true, but when you're the admin and you already know your stuff or at least know how to install Gentoo. you sometimes just don't have time nor care to go through the processes again.

----------

## elmie

this is awesome script. thanks for coming up with one.

I must admit after installing/reinstall Gentoo a few hundred times the process does get tiring. and this script will speed things up.

Although as others has suggested that installing it is the whole point of the exercise, which is true, but when you're the admin and you already know your stuff or at least know how to install Gentoo. you sometimes just don't have time nor care to go through the processes again.

----------

## yagami

Some ideas about the instalation script :

Could some package instalations be automatic by portage ( as there seems to be lots of specified packages toinstall on easygentoo script file ).

The profile file is nice, very good. Could there be a way of specifying the USE flags manually ? ( thinking an config file for use flags, like mylaptop, myworkcomputer, mydesktop) and then just referencing them on the profile ?.

add an option to create binpkg and  march=x86, does almost making perfect for reinstalation on alot of computers.

what do you think ?

----------

## shdcn

You're welcome elmie, hope it helps you more than you think ^^

@yagami

* I think you mean "using emerge xfce4-meta is better than using emerge xorg-server; emerge eselect-fontconfig fontconfig mesa-progs setxkbmap; emerge xfce4-meta xfce4-notifyd". You may be right. I will check if it works ok that way.

* Specifying USE flags should not be that hard, we just need duplicate/opposite check to avoid conflicts. I'll be working on that.

* I have never used binary packages and have zero knowledge about them. I will try to learn and test your suggestion too.

Thank you both for your feedback.

----------

## yagami

 *shdcn wrote:*   

> 
> 
>  I have never used binary packages and have zero knowledge about them. I will try to learn and test your suggestion too.
> 
> Thank you both for your feedback.

 

Actually works very well ... putting the param in emerge to build binpkg , portage afterwards is smart enought to know if emerging the same package again with the same use flags, it will use the binpkg. there isnt really much needed ( just a large disk to store the binpkgs ).

----------

## Oniryczny

Will this script work with my (extremally) old laptop, Toshiba 1800-804 with 512MB SDRAM and serial mouse?

----------

## shdcn

Hi Oniryczny;

I didn't have a chance to test it on old computers but evdev should detect your serial mouse without problems. Low RAM shouldn't be on your way but you will have long compile times. I think (hope) it will work fine with your laptop.

yagami I'm testing binary package creation/usage and user specified USE flags right now, everything looks fine. I'll add these options soon. Should have done that by now but I don't have much free time.

----------

## DeckedSpring67

Sorry dude, it fails while trying to merge udev coz systemd

----------

## Pednick

Any chance you going to fix that: "Installation failed due to compile error. Package: sys-fs/udev-216. Easygentoo will exit now." error? Would like to really try your script.

----------

## shdcn

I've fixed some issues and made some nice improvements. Still testing it but looks like that udev problem is gone. I just had a basic i686 install, it finished without errors.

I'll make a better list of changes later but for now, some new additions to profile variables:

createbin (yes/no)

if enabled, creates binary packages from compilations

usebinfrom (target directory)

if enabled (non-empty), uses binary packages from target directory for installation (instead of compiling them)

userflags (flags you want to include/exclude)

if enabled (non-empty), merges these flags with default flagset

netadap (network adapter name)

Easy Gentoo uses that network adapter (instead of trying to find one), default is empty (auto)

example:

createbin no

usebinfrom /mybinarypkgs

userflags -X dvdr -crypt

netadap eth2

----------

## Pednick

All went fine, made a stupid mistake at first, excellent script thank you once again.   :Very Happy: Last edited by Pednick on Wed Dec 03, 2014 3:23 pm; edited 1 time in total

----------

## .v0ti

I do not know English, sorry

where the fault lies in the script? does not charge stage 3 ... with no mirror

* Getting latest tarball name...

  Latest tarball:  

* Downloading stage3-amd64 tarball... 

--2015-02-23 23:14:36--  http://gentoo.mirror.pw.edu.pl/releases/amd64/autobuilds/20140508/

Resolving gentoo.mirror.pw.edu.pl... 194.29.128.2

Connecting to gentoo.mirror.pw.edu.pl|194.29.128.2|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 3148 (3.1K) [text/html]

Saving to: ‘20140508’

100%[===============================================================>] 3,148       --.-K/s   in 0.002s  

2015-02-23 23:14:37 (1.30 MB/s) - ‘20140508’ saved [3148/3148]

  Checking tarball integrity... 

  We are having trouble downloading from current mirror.

  Switching to another mirror...

  We are having trouble downloading from current mirror.

  Switching to another mirror...

Removed excessive ========  for easy reading

-- NeddySeagoon

----------

## Nuklear

Hi 

I tried your script but i have som troubles that i don't understand and i don't know to fix them.

Two questions:

1. i made  my partition with gparted but when the script begin, it display this message or something like this:

```
The partition /dev/sda1 isn't a block device

The partition /dev/sda2 isn't a block device
```

where 

/dev/sda1 is my swap partiton

/dev/sda2 is my root partition

How can i fix it so i can go on?

2. In your https://github.com/shdcn/easygentoo/blob/master/README.md file you said

```
create a profile in the same directory where script is placed

for more information on profile please read:

https://github.com/shdcn/easygentoo/blob/master/profile
```

How can  i create a profile in the same directory where script is placed by terminal?

Thanks in advance!

----------

## Ftroop

Hi not sure if this is still going but tried it a couple of times and it exits on cant fint mkefs.

Any ideas?

Cheers

----------

## timofonic

Hello.

I found this 20 June 2016 fork, but not sure if it works. I'm under a broken Linux system and made a backup. I want to install Gentoo again, but I fogot lots of stuff so this is too time consuming for my rusty skills...

https://github.com/sleepdragon/easygentoo

Any news?

Kind regards.

----------

## devnullius

 *Ftroop wrote:*   

> Hi not sure if this is still going but tried it a couple of times and it exits on cant fint mkefs.
> 
> Any ideas?
> 
> Cheers

 

Yes! :) A bit late, but for Googlers to come...

export CPPFLAGS="-P"

Source: https://forums.gentoo.org/viewtopic-p-8058400.html#8058400

 *timofonic wrote:*   

> Hello.
> 
> I found this 20 June 2016 fork, but not sure if it works. I'm under a broken Linux system and made a backup. I want to install Gentoo again, but I fogot lots of stuff so this is too time consuming for my rusty skills...
> 
> https://github.com/sleepdragon/easygentoo
> ...

 

I guess nobody is that interested, huh? Almost time for that handbook, but... let's see if this gives something https://forums.gentoo.org/viewtopic-p-8058400.html#8058400

Peace!

devnullius

----------

## NeddySeagoon

devnullius,

You appear to be learning that there is no Easy Gentoo.

As you say, time for the handbook.  Following the handbook for your install will give you some knowledge you can get no other way.

You will learn how to maintain your Gentoo.

That's important because if you trash it while you learn, that's actually quite difficult, you don't lose any valuable user data that you might not have backed up.

Go to the bathroom and look in the mirror. You will see the Gentoo installer there.

----------

## devnullius

 *NeddySeagoon wrote:*   

> devnullius,
> 
> You appear to be learning that there is no Easy Gentoo.
> 
> 

 

Well, installing went ok with new script right up to the last 3 ones... I give this another look this evening, just for fun ;p

```
  Command:   emerge -uN system

  Next packages (3 packages total):

    sys-fs/eudev-3.1.5::gentoo

    virtual/libudev-215-r1:0/1::gentoo

    sys-apps/util-linux-2.28.2::gentoo

>>> Verifying ebuild manifests

>>> Running pre-merge checks for sys-fs/eudev-3.1.5

 * 

 * As of 2013-01-29, eudev-3.1.5 provides the new interface renaming functionality,

 * as described in the URL below:

 * https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames

 * 

 * This functionality is enabled BY DEFAULT because eudev has no means of synchronizing

 * between the default or user-modified choice of sys-fs/udev.  If you wish to disable

 * this new iface naming, please be sure that /etc/udev/rules.d/80-net-name-slot.rules

 * exists: touch /etc/udev/rules.d/80-net-name-slot.rules

 * 

>>> Emerging (1 of 1) sys-fs/eudev-3.1.5::gentoo

>>> Installing (1 of 1) sys-fs/eudev-3.1.5::gentoo

>>> Failed to install sys-fs/eudev-3.1.5

>>> Jobs: 0 of 1 complete, 1 failed      Load avg: 4.91, 4.37, 4.27

 * Messages for package sys-fs/eudev-3.1.5:

 * 

 * As of 2013-01-29, eudev-3.1.5 provides the new interface renaming functionality,

 * as described in the URL below:

 * https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames

 * 

 * This functionality is enabled BY DEFAULT because eudev has no means of synchronizing

 * between the default or user-modified choice of sys-fs/udev.  If you wish to disable

 * this new iface naming, please be sure that /etc/udev/rules.d/80-net-name-slot.rules

 * exists: touch /etc/udev/rules.d/80-net-name-slot.rules

 * 

 * Messages for package sys-fs/eudev-3.1.5:

 * This package will overwrite one or more files that may belong to other

 * packages (see list below). You can use a command such as `portageq

 * owners / <filename>` to identify the installed package that owns a

 * file. If portageq reports that only one package owns a file then do

 * NOT file a bug report. A bug report is only useful if it identifies at

 * least two or more packages that are known to install the same file(s).

 * If a collision occurs and you can not explain where the file came from

 * then you should simply ignore the collision since there is not enough

 * information to determine if a real problem exists. Please do NOT file

 * a bug report at https://bugs.gentoo.org/ unless you report exactly

 * which two packages install the same file(s). See

 * https://wiki.gentoo.org/wiki/Knowledge_Base:Blockers for tips on how

 * to solve the problem. And once again, please do NOT file a bug report

 * unless you have completely understood the above message.

 * 

 * Detected file collision(s):

 * 

 *      /etc/udev/udev.conf

 *      /usr/include/libudev.h

 *      /usr/share/man/man5/udev.conf.5.bz2

 *      /usr/share/man/man8/udevadm.8.bz2

 *      /usr/share/man/man7/udev.7.bz2

 *      /usr/share/pkgconfig/udev.pc

 *      /usr/lib64/pkgconfig/libudev.pc

 *      /lib/udev/v4l_id

 *      /lib/udev/mtd_probe

 *      /lib/udev/cdrom_id

 *      /lib/udev/scsi_id

 *      /lib/udev/collect

 *      /lib/udev/ata_id

 *      /lib/udev/rules.d/60-persistent-input.rules

 *      /lib/udev/rules.d/60-drm.rules

 *      /lib/udev/rules.d/60-block.rules

 *      /lib/udev/rules.d/60-evdev.rules

 *      /lib/udev/rules.d/60-persistent-alsa.rules

 *      /lib/udev/rules.d/78-sound-card.rules

 *      /lib/udev/rules.d/50-udev-default.rules

 *      /lib/udev/rules.d/75-probe_mtd.rules

 *      /lib/udev/rules.d/80-drivers.rules

 *      /lib/udev/rules.d/60-persistent-v4l.rules

 *      /lib/udev/rules.d/60-serial.rules

 *      /lib/udev/rules.d/60-persistent-storage-tape.rules

 *      /lib/udev/rules.d/60-persistent-storage.rules

 *      /lib/udev/rules.d/60-cdrom_id.rules

 *      /lib/udev/rules.d/75-net-description.rules

 *      /lib/udev/rules.d/40-gentoo.rules

 *      /lib/udev/rules.d/70-mouse.rules

 *      /lib/udev/rules.d/64-btrfs.rules

 *      /usr/lib64/libudev.so

 * 

 * Searching all installed packages for file collisions...

 * 

 * Press Ctrl-C to Stop

 * 

 * sys-apps/systemd-226-r2:0::gentoo

 *      /etc/udev/udev.conf

 *      /lib/udev/ata_id

 *      /lib/udev/cdrom_id

 *      /lib/udev/collect

 *      /lib/udev/mtd_probe

 *      /lib/udev/rules.d/50-udev-default.rules

 *      /lib/udev/rules.d/60-block.rules

 *      /lib/udev/rules.d/60-drm.rules

 *      /lib/udev/rules.d/60-evdev.rules

 *      /lib/udev/rules.d/60-persistent-alsa.rules

 *      /lib/udev/rules.d/60-persistent-input.rules

 *      /lib/udev/rules.d/78-sound-card.rules

 *      /lib/udev/scsi_id

 *      /lib/udev/v4l_id

 *      /usr/include/libudev.h

 *      /usr/lib64/pkgconfig/libudev.pc

 *      /usr/share/man/man5/udev.conf.5.bz2

 *      /usr/share/man/man7/udev.7.bz2

 *      /usr/share/man/man8/udevadm.8.bz2

 *      /usr/share/pkgconfig/udev.pc

 * 

 * Package 'sys-fs/eudev-3.1.5' NOT merged due to file collisions. If

 * necessary, refer to your elog messages for the whole content of the

 * above message.

Installation failed due to compile error.

Package: sys-fs/eudev-3.1.5::gentoo.

Easygentoo will exit now.
```

From script code:

```
                case ${package} in

                *sys-apps/kmod-*)

                    umrg "module-init-tools"

                ;;

                *sys-apps/systemd-*)

                    if [ -z "${usebinfrom}" ]; then

                        sed -i '\!^sys-apps/dbus.*$!d' /etc/portage/package.use

                    fi

                    umrg "sys-fs/udev"

                    umrg "sys-fs/eudev"

                    umrg "virtual/udev"

                ;;

                esac
```

----------

