This was original part of EmacsPortableApp == Applications Support == === Adding Paths (Windows Only) === Most of the specific applications work by adding paths and changing environmental variables. This is controlled by App/ini/paths.ini. !EmacsPortableApp looks at the following sections ==== General Paths ==== ==== Local Paths [local] ==== Local paths are paths that emacs checks that are locally available. They are specified by NAME=Local Path Snippet. An example of this is:
[local] git=msysgit\msysgit\bin git2=msysgit\bin gitmsys=msysgit\msysgit\mingw\bin gitmsys2=msysgit\mingw\binIn this example git The following paths are checked: # c:\msysgit\msysgit\bin * The root is set to c:\ # %!ProgramFiles%\msysgit\msysgit\bin * The root is set to %!ProgramFiles% If they exist they are added to the path environment before starting emacs. If the directory in fact /exists/, then two additional ini sections are checked, [local.git.path] and [local.git.set]. For the git local setup, there are two sections. The first local.git.path is specified as follows:
[local.git.path] git_install_root=msysgit\msysgitThen each key is added to the environment putting the root location before the right handed value. In this case, the environmental variable is set to c:\msysgit\msysgit or %!ProgramFiles%\msysgit\msysgit depending on which path was found. The other type of section that is used is the [local.git.set]. In the case of git this section is defined as:
[local.git.set] PLINK_PROTOCOL=sshTherefore, if git is found then the environmental variable PLINK_PROTOCOL is set to ssh. ==== Portable Paths [portable] ==== The portable paths are set in the same way as the local paths with the exception of the places they check for the existence of paths. The portable section checks for paths in USB:\, and USB:\!PortableApps\. ==== Relative Paths [exedir] ==== The exedir section checks for paths relative to the portable application. ==== Info Paths ==== Emacs uses Info for most everything. You can add info paths that Emacs doesn't know about by a similar manner as the general paths, above. ==== Unix Manual Paths ==== === Java-based Apps === !EmacsPortable supports [http://plantuml.sourceforge.net/download.html PlantUML], [http://www.mathtoweb.com/cgi-bin/mathtoweb_home.pl MathToWeb] and [http://ditaa.sourceforge.net/ ditaa] for [http://orgmode.org org-mode] assuming that [http://portableapps.com/apps/utilities/java_portable_launcher JavaPortable] is installed. [http://plantuml.sourceforge.net/download.html PlantUML] requires dot from !GraphViz. Therefore, !GraphVizPortable would need to be installed for [http://plantuml.sourceforge.net/download.html PlantUML] to work. === Imagemagick === Imagemagick is used for many Emacs Applications. !EmacsPortableApp attempts to detect a portable version of !EmacsPortableApp or see if Imagemagick is installed on the computer. A portable version of Imagemagic is found [ftp://ftp.imagemagick.org/pub/!ImageMagick/binaries/!ImageMagick-6.7.9-3-Q16-windows.zip at ftp.imagemagick.org] By extracting the portable version in the !PortableApps or !LiberKey\!MyApps !EmacsPortable.App will add this to the path. This assumes the Imagemagick directory is !ImageMagick-6.7.9-3 === Python based Apps === By installing [http://www.portablepython.com Python Portable] into your !PortableApps Directory, python is available to Emacs. This is useful for installing Bazaar, which Emacs uses as its version control. === Version control Software === ==== Bazaar ==== I have created a portable Bazaar. !EmacsPortable.App will recognize bazaar version ==== Subversion in Windows ==== Not quite portable, but you can get the binaries [http://www.visualsvn.com/downloads/ here]. Running in subversion from within !EmacsPortable.App /is/ portable, though. Emacs will set the %!AppData% Environment variable to Data/!AppData and set %ALLUSERSPROFILE% to Data/!AppData ==== Git ==== !EmacsPortable.App picks up both Git portable and locally installed installations. Because of emacs version control, if Git is not installed locally, Emacs is slowed down substantially. === SumatraPDF Portable === Using AUC!TeX inverse-search and forward search is supported with [http://portableapps.com/apps/office/sumatra_pdf_portable SumatraPDFPortable]. There should be no set-up, !EmacsPortable.App with setup both Emacs and [http://portableapps.com/apps/office/sumatra_pdf_portable SumatraPDFPortable]. === GPG for encryption === !EmacsPortableApp looks for the gpg package that is installed with Mozilla Thunderbird. First install Thunderbird Portable: http://portableapps.com/support/thunderbird_portable Then install gpg from here http://portableapps.com/support/thunderbird_portable#encryption === MikTeX Portable === If you extract !MikTeX portable to !PortableApps/!MikTexPortable/, !EmacsPortable.App will be recognized and used. === Unix Ports === ==== Cygwin ==== ==== MSYS ==== Supports MSYS portable. ==== GnuWin32 ==== ==== EzWin ==== === PuTTY === ==== PuTTY and magit ==== Since magit and !OpenSSH does not work correctly in windows, you can use !PuTTY to connect to your host via plink. Note that you must connect to the host first via !PuTTY or you will get one of the following error messages:
The server's host key is not cached in the registry. You have no guarantee that the server is the computer you think it is. The server's rsa2 key fingerprint is: ssh-rsa 2048 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 Connection abandoned. fatal: The remote end hung up unexpectedlyor
WARNING - POTENTIAL SECURITY BREACH! The server's host key does not match the one PuTTY has cached in the registry. This means that either the server administrator has changed the host key, or you have actually connected to another computer pretending to be the server. The new rsa2 key fingerprint is: ssh-rsa 2048 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 Connection abandoned. fatal: The remote end hung up unexpectedlyThe information about setting up GIT to use putty are located here. http://sitaramc.github.com/gitolite/contrib_putty.html This is done automatically when running TRAMP. Therefore, if you want to use magit for github, you need open puttyportable and attempt to open git@github.com so it can cache the host id. ==== PuTTY and Tramp ==== From Jeremy Engilsh there is a tutorial on how to get TRAMP to work with windows 2K. This is adapted from [http://www.jeremyenglish.org/docs/tramp_ntmacs.pdf that tutorial]. !EmacsPortable.App will download and setup the appropriate files for !PuTTY portable, if you need them. In addition to putty.exe, you will need: * puttygen.exe * pageant.exe * plink.exe # Generate a Key Use Puttygen to generate a key. Puttygen should be in the !PuttyPortable application. [[./Other/img/!PuTTYKeyGenerator0.png]] [[./Other/img/!PuTTYKeyGenerator1.png]] # Save the public key This is under File->Save Private Key # Export the key to an open ssh key. This is under Conversions->Export !OpenSSH Key # Copy the key to the server. This can be done with a secure file transfer like !FileZilla. Or, if ssh is working for you, you can use the following shell command
scp key user@host:~/# Log into the host and add to authorized keys
ssh example.server.com mkdir ~./ssh chmod 700 ~/.ssh cat ~/key >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys rm ~/key# Let !EmacsPortable.App know about the key Use !EmacsOptions.exe to select the !PuTTy key. If you want it to be portable keep the key on the USB drive *OR* in the executable directory. # Run !EmacsPortable.App. !EmacsPortable.App will start pageant.exe if it is not already running and set up tramp to use plink. This is done by the site-start. ==== PuTTYPortable ==== To use the settings of !PuTTYPortable, you have to have a !PuTTYPortable session open. ==== PuTTY and Proxy settings ==== !PuTTY currently stores proxy settings in the registry. If !EmacsPortable.App is started up AND !PuTTY Pageant has not started up, then: * !EmacsPortable.App will run Paegeant Portable * Just after launching emacs, !EmacsPortable.App will write the Proxy settings to the registry * When you exit !PuttyPortable, these settings will be saved. Therefore, you do not need to always manually edit proxy settings, and plink should work most of the time. ==== PuTTY and R ==== R can connect to remote sessions using ssh.el. When you use !PuTTY to connect you will need to set the following option: {{{ (setq ssh-program "plink") }}} === Bleeding edge emacs (Not supported yet) === These are notes to use the bleeding edge emacs. Goto the App directory, and under a command prompt that has bzr installed, type
bzr branch --stacked bzr://bzr.savannah.gnu.org/emacs/trunk emacs-bzr
If that has already been performed, to update just type:
bzr pullIf you are behind a firewall you may wish to use git to get the latest sources. Note that only the Bazaar repo is the official
git clone http://git.savannah.gnu.org/r/emacs.git emacs-git