Joe wrote: > Hello, > > > I'm looking for some tips and tricks regarding emerge. I know there is > a cheat sheet on what stuff you can do. But i would like emerge > exclusively . > > Normally i run emerge -uavDU --with-bdeps=y @world when i don't want a > reinstall of everything after a emerge --sync > > I run emerge -uavDN --with-bdeps=y @world when i want to reinstall or > like the manual says if there is a use flag that has been changed by > me or the dev. > > > Am i doing it right or what should i do that can help me and newer people > > > Thanks > > > Joe
I been using Gentoo since 2003. The emerge program has come a LONG way since then. Over the years tho, I've refined my update process until I got to a point where it won't get any better. You will still run into the occasional update that requires the use of a hammer but for the most part, this does well. First thing. I have a set of options in make.conf to cover most options. That line looks like this. EMERGE_DEFAULT_OPTS="--with-bdeps y --backtrack=500 --keep-going -v --quiet-build=y -1 --unordered-display --jobs=16 --load-average 8" A couple of those are either personal preference or machine dependent. The bdeps option will cause extra rebuilds on occasion but it is rare that I get a seg fault or programs that just crash because the versions don't work well together. Before that option was available, I used to do a emerge -e world to fix problems with programs not starting or crashing with a seg fault. The bdeps options seems to have improved that a LOT. The backtrack option just makes sure you only have to run emerge -a<whatever> once. It takes a while sometimes but it digs deep, real deep. If a update can be done, it will find a way. Honestly, 100 is likely more than enough in most all cases. The keep-going option is good for when a packages fails, especially early on, and it stops the update. On most occasions, emerge can regroup and continue on skipping only one or a very few packages. It saves time in the long run if you start a update and don't monitor it. The -1 option is the same as oneshot. This prevents you from accidentally cluttering up the world file. Something gives you problems and you are emerging by hand, if you forget to add the -1 as you work to fix it, it adds all those to the world file, including version if you specify one. I'm not sure on the display option. I added it for some reason, ages ago. The job and load is different for each machine. The line above is for a 16 core, 32 thread CPU with 64GBs of ram. My old 8 core with 32GBs of ram was set to jobs 8 and load 3 I think. Memory is one limiting factor there. LOo, that qt package and a couple others can fail from lack of memory if set higher. Second thing. My usual update process. I sync first. I run emerge -auDN world and check what it plans to do. I mostly check USE flags. Sometimes a USE flag will change and I have to adjust them a bit. Sometimes on a per package basis, sometimes global. Once I'm happy with what it wants to do, I hit the 'y' key and turn her lose. On both my old rig and new rig, I have a second install that is in a chroot. When I have packages that take a long time to build, I do my updates in the chroot first and then copy over the binaries. Then I just need to do a emerge -aukDN world to make the update faster since it is already compiled. This can be handy when you have some of the qt packages and the software has different versions and it causes problems. Some updates midway can make it so certain programs won't launch at all. I've had that happen with Kwrite several times, Dolphin a few times. Once the update is done and you logou and back in, everything works again. You just may run into problems during the update when some packages are old still and some are new. This method lessens the time of that problem. Once the update is done, I then run emerge -a --depclean and see if anything needs to be removed or if I need to add something I want to keep to the world file. Oh, if you want to emerge something and add it to the world file so it gets updated and saved, emerge --select y plus your other options will override the oneshot option. If you run a GUI, you need to logout and back in. I sometimes switch to the boot runlevel and check for services that need to be restarted as well. One could reboot and achieve the same goal. This is Linux tho. ;-) Obviously, a news item can change that process. If there is a news item with a different process, follow that for sure. Following the news item to the letter is the best way. The devs work out all the kinks and bugs before they post the news item. Oh, this is another good line to have in make.conf. FEATURES="-usersync userpriv usersandbox buildpkg sandbox parallel-fetch parallel-install" The ones I care about. The buildpkg tells it to save binary copies. This is a must if done in a chroot and you want to install elsewhere as binaries but comes in handy if you accidentally remove something and need it back fast or you need to restore something you removed and broke portage. The fetch option just tells it to fork the download part and keep downloading until it has everything it needs to update. The install option I think tells it to do more than one install at a time instead of one at a time. I've never had a problem with this. If something is going to clash, emerge sets a lock file and waits until the other package is installed. I think the others were the default when I installed. Check the man page maybe???? What you just read is from about 20 years of tweaking things on half a dozen rigs. It should get you off to a good start for sure. Dale :-) :-) P. S. I'm starting to hate this keyboard on emails like this. :-@ It does give me practice tho. lol