Difference between pages "GNOME First Steps" and "FLOP:SquashFS sync"

From Funtoo
(Difference between pages)
Jump to navigation Jump to search
 
(initial info)
 
Line 1: Line 1:
=== What is GNOME? ===
{{FLOP
 
|Created on=2015/02/27
"GNOME 3 is an easy and elegant way to use your computer. It is designed to put you in control and bring freedom to everybody. GNOME 3 is developed by the GNOME community, a diverse, international group of contributors that is supported by an independent, non-profit foundation." — [http://gnome.org GNOME]
|Summary=An alternate syncing method using SquashFS Images and deltas. Meant for stable systems where frequent updates aren't necessary, offering reduced bandwidth and disk space use, and improved speed.
 
|Author=Mgorny,
=== Prerequisites ===
|Reference Bug=FL-2138
 
==== From a Clean Install ====
 
Ensure that the [[X Window System]] is installed.
 
=== Preparing to emerge ===
 
To get your system ready to emerge gnome, first set your system flavor to desktop, and enable the gnome profile mix-in. To accomplish this, do the following:
{{console|recipe=setup,setup-light|desc=Set profile|body=
# ##i##eselect profile set-flavor funtoo/1.0/linux-gnu/flavor/desktop
# ##i##eselect profile add funtoo/1.0/linux-gnu/mix-ins/gnome
}}
 
By enabling the gnome mix-in, various USE and other settings will be optimized to provide you with a pain-free GNOME installation experience.
 
=== Emerging ===
 
You are provided with two packages that will pull in this desktop environment:
 
* ''gnome''
 
{{fancynote|This is the "whole shabang" - pulls in a range of applications made for the gnome desktop environment including a few games, an archive manager, a system monitor, a web browser, a terminal, etc.}}
 
* ''gnome-light''
 
{{fancynote|As the name implies, this pulls in the base minimal you need to get a functioning GNOME Desktop Environment.}}
 
==== GNOME 3.14 from a clean install ====
 
===== gnome =====
 
To emerge ''gnome'' run the following command
 
{{console|desc=Emerging GNOME|body=
# ##i## emerge gnome
}}
}}
== Problems with the current syncing method ==
Currently the official syncing method for Funtoo systems is git. While it's quite good, it has a few downsides:
* it places a lot of small files on the underlying filesystem — usually requiring a dedicated, small file-efficient filesystem,
* the git metadata increases disk space use even further, especially after multiple syncs,
* rare syncs imply transferring intermediate changes that may no longer be useful to end user.


===== gnome-light =====
While this is acceptable for hackers, it may be undesired for stable systems that are updated rather rarely and should be easy to set up.
 
To emerge ''gnome-light'' run the following command
 
{{console|recipe=setup-light|desc=Emerging a minimal GNOME environment (alternative)|body=
# ##i## emerge gnome-light
}}
 
==== Upgrading from GNOME 3.12 ====
 
To update either ''gnome'' or ''gnome-light'' run the following command:
 
{{console|body=
# ##i## emerge -vauDN world
}}
=== Subsystems ===
 
==== Bluetooth ====
 
For bluetooth support, ensure that:
 
# Bluetooth support is enabled in your kernel (using modules is fine).
# Your bluetooth hardware is turned on.
# Add the <code>bluetooth</code> startup script to the default runlevel, and start it.
 
This can be done as follows:
 
<console>
# ##i##rc-update add bluetooth default
# ##i##rc
</console>
 
Once this is done, you should now be able to navigate to ''Settings'' -> ''Bluetooth'' and turn bluetooth on. The icon next to devices should now animate and you should be able to discover and add devices such as keyboards.
 
{{Note|1=
Additional kernel drivers may need to be enabled for certain input devices. For example, for the bluetooth Apple Magic Trackpad, the following option must be enabled in your kernel:
 
{{kernelop|title=Device Drivers,HID support,HID bus support,Special HID drivers|desc=
<M> Apple Magic Mouse/Trackpad multi-touch support
}}}}
 
==== Printing ====
 
To enable printing support, add <code>cupsd</code> to the default runlevel:
 
<console>
# ##i##rc-update add cupsd default
# ##i##rc
</console>
 
You should now be able to navigate to ''Settings'' -> ''Printers'' and add printers to your system, and print.
 
==== Scanning ====
 
To enable scanning support, add your user account to the <code>lp</code> group. This will allow your user to access the USB scanner.
 
Then, <code>emerge xsane</code>, and run it. It should be able to access your scanner.
 
=== Finishing Touches ===
 
==== X ====
 
===== Setting up xdm (GUI log-in) =====
 
Typically, you will want to use <code>gdm</code>, the GNOME display manager, to log in to GNOME. This will allow you to log in graphically, rather than using the text console.
 
To enable gdm, edit <code>/etc/conf.d/xdm</code> and set <code>DISPLAYMANAGER</code> to <code>gdm</code> instead of <code>xdm</code>. Then, perform the following steps to add <code>xdm</code> to the default runlevel, and have it start automatically from now on when your system starts:
 
{{Note|Funtoo's <code>/etc/init.d/xdm</code> initscript has been modified to start the requisite services <code>dbus</code>, <code>openrc-settingsd</code> and <code>consolekit</code> prior to starting <code>gdm</code>.}}
 
{{console|recipe=setup|desc=Enable the GNOME display manager|body=
# ##i## rc-update add xdm default
}}
 
Then, if you want to start it now do:
 
{{console|body=
# ##i##rc
}}
 
But you should reboot to avoid having an open login terminal.
 
===== Setting up xinitrc (text log-in) =====
 
Adding the following to your <code>~/.xinitrc</code> file is sufficient:
 
<pre>
# Fix Missing Applications in Gnome
export XDG_MENU_PREFIX=gnome-
 
# Properly Launch the Desired X Session
exec ck-launch-session gnome-session
</pre>
 
Additionaly, if you need support for different input sources, there is no longer a need to configure IBus or SCIM in your <code>.xinitrc</code> file as GNOME uses IBus natively. Simply configure it in the Control Center under Region & Language.
 
=== Automatically Starting Applications at Login ===
 
When using an old-fashioned <code>.xinitrc</code>, starting up applications when X starts is relatively easy. When using GDM, this can still be accomplished, by using the <code>~/.xprofile</code> file. Here's my sample <code>.xprofile</code> to start <code>xflux</code> to dim the screen at night:
 
<pre>
xflux -z 87107
</pre>
 
{{Note|Remember to add a <code>&</code> at the end of any command that doesn't return to the shell prompt after running.}}
 
=== games ===
Gnome has several games that can be added on to your install.  By default most games are not included in gnome's emerge.
 
Users wishing to play games need to be added to the games group:
{{console|body=###i## gpasswd -a $USER games}}
 
game list:
;gnome-sudoku
;gnome-mastermind
;gnome-nibbles
;gnome-robots
;gnome-chess
;gnome-hearts
;gnome-mahjongg
;gnome-mines
;gnome-klotski
;gnome-tetravex
 
game system emulators:
 
;gnomeboyadvance
;gnome-mud
 
=== Significant Known Issues (Workarounds Available) ===
 
[https://bugs.funtoo.org/browse/FL-1678 FL-1678]: Bluetooth interface gives wrong pairing key
 
[https://bugs.funtoo.org/browse/FL-1687 FL-1687]: Wallpaper corruption when resuming from suspend


[[Category:Desktop]]
{{FLOPFooter}}
[[Category:First Steps]]
[[Category:Official Documentation]]

Revision as of 13:31, February 27, 2015

Created on
2015/02/27
Original Author(s)
Mgorny
Status
Reference Bug
FL-2138

Funtoo Linux Optimization Proposal: SquashFS sync

An alternate syncing method using SquashFS Images and deltas. Meant for stable systems where frequent updates aren't necessary, offering reduced bandwidth and disk space use, and improved speed.

Problems with the current syncing method

Currently the official syncing method for Funtoo systems is git. While it's quite good, it has a few downsides:

  • it places a lot of small files on the underlying filesystem — usually requiring a dedicated, small file-efficient filesystem,
  • the git metadata increases disk space use even further, especially after multiple syncs,
  • rare syncs imply transferring intermediate changes that may no longer be useful to end user.

While this is acceptable for hackers, it may be undesired for stable systems that are updated rather rarely and should be easy to set up.