Developers/Setup: Difference between revisions
No edit summary |
|||
Line 9: | Line 9: | ||
== Recommended environment == |
== Recommended environment == |
||
[[Releases|OLPC OS releases]] are based on specific versions of Fedora. It is recommended that you install the matching version of Fedora on your development computer, matching the architecture (i686 or x86_64). |
[[Releases|OLPC OS releases]] are based on specific versions of [[Fedora]]. It is recommended that you install the matching version of Fedora on your development computer, matching the architecture (i686 or x86_64). |
||
Although you will likely develop on your regular desktop computer, you will need an XO at your side for testing. |
Although you will likely develop on your regular desktop computer, you will need an XO at your side for testing. |
Revision as of 00:52, 12 May 2014
The OLPC software environment is a combination of OLPC-tailored low-level system components (sharing as much with Fedora as possible), plus dual user-level platforms Sugar and GNOME.
Development of components of Sugar and GNOME (really anything that directly faces the user) happens within the regular upstream Sugar developer and GNOME developer communities. The content on this wiki relates to development of the lower level OLPC platform.
Recommended environment
OLPC OS releases are based on specific versions of Fedora. It is recommended that you install the matching version of Fedora on your development computer, matching the architecture (i686 or x86_64).
Although you will likely develop on your regular desktop computer, you will need an XO at your side for testing.
Communicating with your XO
SSH Access
You will often want to be able to use file-transfer and remote-login operations to access your Sugar environment. We generally recommend using ssh-based access for working with your Sugar environment remotely.
Password Based
Password-based SSH authentication is convenient and simple to set up, but it is far easier to crack than key-based access. Consider using key-based authentication unless you are absolutely sure that no-one can reach your Sugar environment from untrusted networks (and maybe even then).
Open a Terminal activity and run:
passwd
which will prompt you to enter a password (and confirm it).
Note: you can also set a password on the root account by doing:
su root passwd
in the terminal window. This is strongly recommended if you are going to allow remote access to your machine.
SSH Key Based
SSH Key based authentication provides strong public-key encrypted access control for your Sugar environment, but takes a bit more work than SSH Password base authentication.
In summary, you create a private key which will be stored on your remote system and encrypted with a strong password. You transfer the public key (think of it as a lock) that corresponds to that key to the Sugar environment and install it as an "authenticated key" which can be used to log into the Sugar environment.
On your remote system, install SSH (Linux and MacOS will already have it installed, on Windows use the PuTTY program) and generate a new ssh key pair (following is for Linux/MacOS, refer to PuTTY's documentation for details on Windows):
ssh-keygen
Usage notes:
- Accept the defaults for key-type and size.
- If ssh-keygen asks if you want to overwrite a key say No, you are about to destroy your current ssh key!
- Use a strong pass-phrase that you can remember easily (the pass phrase will need to be entered frequently unless you make use of an ssh-agent such as offered by PuTTY or Gentoo's keychain)
This will normally create a file in your ~/.ssh/ directory named id_rsa.pub (if you accepted the defaults). You now need to copy this file to your Sugar environment and add it to the contents of your ~/.ssh/authorized_keys file (you may need to create the file).
mkdir ~olpc/.ssh cat id_rsa.pub >> ~olpc/.ssh/authorized_keys
add your key to your keychain/ssh-agent application and you can now use SSH with just a single sign-on for many concurrent actions.