From fb0e2bf1f98f824a8161f8434ec7cffc4255fea1 Mon Sep 17 00:00:00 2001 From: Jim Shaver Date: Sat, 11 Apr 2015 16:45:48 -0400 Subject: [PATCH 1/9] Cleaned up Ubuntu docs and added Windows installation information --- doc-src/install.html | 48 ++++++++++++++++++++++---------- doc-src/winppythoninstaller.jpg | Bin 0 -> 46628 bytes 2 files changed, 34 insertions(+), 14 deletions(-) create mode 100644 doc-src/winppythoninstaller.jpg diff --git a/doc-src/install.html b/doc-src/install.html index 682e317e6..2e9de63b8 100644 --- a/doc-src/install.html +++ b/doc-src/install.html @@ -1,20 +1,19 @@ ## Installing from source -The preferred way to install mitmproxy - whether you're installing the latest -release or from source - is to use [pip](http://www.pip-installer.org/). If you -don't already have pip on your system, you can find installation instructions -[here](http://www.pip-installer.org/en/latest/installing.html). +The preferred way to install mitmproxy - whether you're installing the latest release or from source - is to use [pip](http://www.pip-installer.org/). If you don't already have pip on your system, you can find installation instructions [here](http://www.pip-installer.org/en/latest/installing.html). + +If you are looking for a more information on how to install mitmproxy directly from the master branch on GitHub, or are wanting to set up mitmproxy for developement purposes, see the Hacking section of the README on GitHub.
-pip install mitmproxy
+$ sudo pip install mitmproxy
 
If you also want to install the optional packages AMF, protobuf and CSS content views, do this:
-pip install "mitmproxy[contentviews]"
+$ sudo pip install "mitmproxy[contentviews]"
 
@@ -46,14 +45,35 @@ video/*; /usr/bin/open -Wn %s ## Ubuntu -On Ubuntu, you will need the following native packages to install mitmproxy -from source: +Ubuntu comes with Python but we need to install pip, python-dev and several libraries. This was tested on a fully patched installation of Ubuntu 14.04. -- build-essential -- python-dev -- libffi-dev -- libssl-dev -- libxml2-dev -- libxslt1-dev +
+$ sudo apt-get python-pip python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev
+
+$ sudo pip install mitmproxy
+
+## Windows + +mitmweb and mitmdump are the only parts of mitmproxy that work on Windows. + +Install the latest version of Python 2 from the Python website. The Windows MSI installer is fairly straight forward and even includes pip as long as you are installing a version of Python 2 after 2.7.9. One option you should change during installation is "Add python.exe to Path". This will make it easier to run Python. + + +Now log out of Windows and back in to finish having Python added to your PATH. + +
+C:\> pip install mitmproxy
+
+ +From that point you just run mitmweb or mitmdump from the Command Prompt + +
+C:\> mitmweb
+
+or +
+C:\> mitmdump
+
+ diff --git a/doc-src/winppythoninstaller.jpg b/doc-src/winppythoninstaller.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0473c66aed3c40781c5fe40a5d4896a5671c3a1d GIT binary patch literal 46628 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 Date: Sat, 11 Apr 2015 17:21:43 -0400 Subject: [PATCH 2/9] Fixed english and made each OS consistent --- doc-src/install.html | 18 ++++++------------ doc-src/winppythoninstaller.jpg | Bin 46628 -> 0 bytes 2 files changed, 6 insertions(+), 12 deletions(-) delete mode 100644 doc-src/winppythoninstaller.jpg diff --git a/doc-src/install.html b/doc-src/install.html index 2e9de63b8..246b3c46f 100644 --- a/doc-src/install.html +++ b/doc-src/install.html @@ -6,14 +6,14 @@ The preferred way to install mitmproxy - whether you're installing the latest re If you are looking for a more information on how to install mitmproxy directly from the master branch on GitHub, or are wanting to set up mitmproxy for developement purposes, see the Hacking section of the README on GitHub.

-$ sudo pip install mitmproxy
+$ pip install mitmproxy
 
If you also want to install the optional packages AMF, protobuf and CSS content views, do this:
-$ sudo pip install "mitmproxy[contentviews]"
+$ pip install "mitmproxy[contentviews]"
 
@@ -42,6 +42,7 @@ image/*; /usr/bin/open -Wn %s video/*; /usr/bin/open -Wn %s +From now on you can run mitmproxy, mitmweb or mitmdump from a terminal. ## Ubuntu @@ -53,10 +54,11 @@ $ sudo apt-get python-pip python-dev libffi-dev libssl-dev libxml2-dev libxslt1- $ sudo pip install mitmproxy +From now on you can run mitmproxy, mitmweb or mitmdump from a terminal. ## Windows -mitmweb and mitmdump are the only parts of mitmproxy that work on Windows. +Please note that mitmweb and mitmdump are the only components of mitmproxy that work on Windows. Install the latest version of Python 2 from the Python website. The Windows MSI installer is fairly straight forward and even includes pip as long as you are installing a version of Python 2 after 2.7.9. One option you should change during installation is "Add python.exe to Path". This will make it easier to run Python. @@ -67,13 +69,5 @@ Now log out of Windows and back in to finish having Python added to your PATH. C:\> pip install mitmproxy -From that point you just run mitmweb or mitmdump from the Command Prompt - -
-C:\> mitmweb
-
-or -
-C:\> mitmdump
-
+From now on you can just run mitmweb or mitmdump from the Command Prompt. diff --git a/doc-src/winppythoninstaller.jpg b/doc-src/winppythoninstaller.jpg deleted file mode 100644 index 0473c66aed3c40781c5fe40a5d4896a5671c3a1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46628 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 Date: Sat, 11 Apr 2015 17:25:31 -0400 Subject: [PATCH 3/9] Fixed image name and moved it into the screenshots folder --- doc-src/screenshots/winpythoninstaller.jpg | Bin 0 -> 46628 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc-src/screenshots/winpythoninstaller.jpg diff --git a/doc-src/screenshots/winpythoninstaller.jpg b/doc-src/screenshots/winpythoninstaller.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0473c66aed3c40781c5fe40a5d4896a5671c3a1d GIT binary patch literal 46628 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 Date: Sat, 11 Apr 2015 19:02:37 -0400 Subject: [PATCH 4/9] cleaned up Installing from source section. --- doc-src/install.html | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/doc-src/install.html b/doc-src/install.html index 246b3c46f..e41935428 100644 --- a/doc-src/install.html +++ b/doc-src/install.html @@ -1,9 +1,7 @@ ## Installing from source -The preferred way to install mitmproxy - whether you're installing the latest release or from source - is to use [pip](http://www.pip-installer.org/). If you don't already have pip on your system, you can find installation instructions [here](http://www.pip-installer.org/en/latest/installing.html). - -If you are looking for a more information on how to install mitmproxy directly from the master branch on GitHub, or are wanting to set up mitmproxy for developement purposes, see the Hacking section of the README on GitHub. +You can install mitmproxy with pip:

 $ pip install mitmproxy
@@ -16,24 +14,17 @@ content views, do this:
 $ pip install "mitmproxy[contentviews]"
 
+If you are looking for a more information on how to install mitmproxy directly from the master branch on GitHub, or are wanting to set up mitmproxy for developement purposes, see the Hacking section of the README on GitHub. + ## OSX -The easiest way to get up and running on OSX is to download the pre-built -binary packages from [mitmproxy.org](http://mitmproxy.org). If you still want -to install using pip, there are a few things to keep in mind: +The easiest way to get up and running on OSX is to download the pre-built binary packages from [mitmproxy.org](http://mitmproxy.org). If you still want to install using pip, there are a few things to keep in mind: -- If you're running a Python interpreter installed with homebrew (or similar), -you may have to install some dependencies by hand. -- Make sure that XCode is installed from the App Store, and that the -command-line tools have been downloaded (XCode/Preferences/Downloads). +- If you're running a Python interpreter installed with homebrew (or similar), you may have to install some dependencies by hand. +- Make sure that XCode is installed from the App Store, and that the command-line tools have been downloaded (XCode/Preferences/Downloads). -There are a few bits of customization you might want to do to make mitmproxy -comfortable to use on OSX. The default color scheme is optimized for a dark -background terminal, but you can select a palette for a light terminal -background with the --palette option. You can use the OSX open program -to create a simple and effective ~/.mailcap file to view request and -response bodies: +There are a few bits of customization you might want to do to make mitmproxy comfortable to use on OSX. The default color scheme is optimized for a dark background terminal, but you can select a palette for a light terminal background with the --palette option. You can use the OSX open program to create a simple and effective ~/.mailcap file to view request and response bodies:
 application/*; /usr/bin/open -Wn %s

From 3117dd77339334a7ee45bbd9707c1776f7436852 Mon Sep 17 00:00:00 2001
From: Jim Shaver 
Date: Sat, 11 Apr 2015 19:41:16 -0400
Subject: [PATCH 5/9] Removed mitmweb referrences and added On This Page
 section

---
 doc-src/install.html | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/doc-src/install.html b/doc-src/install.html
index e41935428..f2fd15ecd 100644
--- a/doc-src/install.html
+++ b/doc-src/install.html
@@ -1,5 +1,11 @@
+## On This Page
 
-## Installing from source
+* [Installation From Source](#docSource)
+* [Installation On Mac OS X](#docOSX)
+* [Installation On Ubuntu](#docUbuntu)
+* [Installation On Windows](#docWindows)
+
+## Installing From Source
 
 You can install mitmproxy with pip:
 
@@ -16,8 +22,7 @@ $ pip install "mitmproxy[contentviews]"
 
 If you are looking for a more information on how to install mitmproxy directly from the master branch on GitHub, or are wanting to set up mitmproxy for developement purposes, see the Hacking section of the README on GitHub. 
 
-
-## OSX
+## Installation On Mac OS X
 
 The easiest way to get up and running on OSX is to download the pre-built binary packages from [mitmproxy.org](http://mitmproxy.org). If you still want to install using pip, there are a few things to keep in mind:
 
@@ -33,9 +38,9 @@ image/*; /usr/bin/open -Wn %s
 video/*; /usr/bin/open -Wn %s
 
-From now on you can run mitmproxy, mitmweb or mitmdump from a terminal. +From now on you can run mitmproxy or mitmdump from a terminal. -## Ubuntu +## Installation On Ubuntu Ubuntu comes with Python but we need to install pip, python-dev and several libraries. This was tested on a fully patched installation of Ubuntu 14.04. @@ -45,13 +50,13 @@ $ sudo apt-get python-pip python-dev libffi-dev libssl-dev libxml2-dev libxslt1- $ sudo pip install mitmproxy -From now on you can run mitmproxy, mitmweb or mitmdump from a terminal. +From now on you can run mitmproxy or mitmdump from a terminal. -## Windows +## Installation On Windows -Please note that mitmweb and mitmdump are the only components of mitmproxy that work on Windows. +Please note that mitmdump is the only component of mitmproxy that is supported on Windows. -Install the latest version of Python 2 from the Python website. The Windows MSI installer is fairly straight forward and even includes pip as long as you are installing a version of Python 2 after 2.7.9. One option you should change during installation is "Add python.exe to Path". This will make it easier to run Python. +Install the latest version of Python 2 from the Python website. The Windows MSI installer is fairly straightforward and even includes pip as long as you are installing a version of Python 2 after 2.7.9. For the most part, you can accept the defaults but one option you should change during installation is "Add python.exe to Path". This will make it easier to run Python. Now log out of Windows and back in to finish having Python added to your PATH. @@ -60,5 +65,5 @@ Now log out of Windows and back in to finish having Python added to your PATH. C:\> pip install mitmproxy -From now on you can just run mitmweb or mitmdump from the Command Prompt. +From now on you can run mitmdump from a Command Prompt. From 4a6bdb25642c6849b6023241dc1ce90479938dae Mon Sep 17 00:00:00 2001 From: Jim Shaver Date: Sat, 11 Apr 2015 22:17:26 -0400 Subject: [PATCH 6/9] added the most important part of "sudo apt-get install ..." to the docs --- doc-src/install.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc-src/install.html b/doc-src/install.html index f2fd15ecd..a5732461f 100644 --- a/doc-src/install.html +++ b/doc-src/install.html @@ -45,7 +45,7 @@ From now on you can run mitmproxy or -$ sudo apt-get python-pip python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev +$ sudo apt-get install python-pip python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev $ sudo pip install mitmproxy From a63634254dc2adff6556187dde8800deb4c6f3d3 Mon Sep 17 00:00:00 2001 From: Jim Shaver Date: Sat, 11 Apr 2015 23:17:07 -0400 Subject: [PATCH 7/9] Removed logging out added setting variables manually. --- doc-src/install.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc-src/install.html b/doc-src/install.html index a5732461f..7010016f4 100644 --- a/doc-src/install.html +++ b/doc-src/install.html @@ -59,9 +59,9 @@ Please note that mitmdump is the only component of mitmproxy that is supported o Install the latest version of Python 2 from the Python website. The Windows MSI installer is fairly straightforward and even includes pip as long as you are installing a version of Python 2 after 2.7.9. For the most part, you can accept the defaults but one option you should change during installation is "Add python.exe to Path". This will make it easier to run Python. -Now log out of Windows and back in to finish having Python added to your PATH. -
+C:\> set PATH = C:\Python27;C:\Python27\Scripts;%PATH%
+
 C:\> pip install mitmproxy
 
From bfe57ae1133cb2015d9c6c338652a3ce04375e0f Mon Sep 17 00:00:00 2001 From: Jim Shaver Date: Tue, 21 Apr 2015 10:39:57 -0400 Subject: [PATCH 8/9] Moved installing from Source to the bottom. --- doc-src/install.html | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/doc-src/install.html b/doc-src/install.html index 7010016f4..d5a01ca3a 100644 --- a/doc-src/install.html +++ b/doc-src/install.html @@ -1,26 +1,9 @@ ## On This Page -* [Installation From Source](#docSource) * [Installation On Mac OS X](#docOSX) * [Installation On Ubuntu](#docUbuntu) * [Installation On Windows](#docWindows) - -## Installing From Source - -You can install mitmproxy with pip: - -
-$ pip install mitmproxy
-
- -If you also want to install the optional packages AMF, protobuf and CSS -content views, do this: - -
-$ pip install "mitmproxy[contentviews]"
-
- -If you are looking for a more information on how to install mitmproxy directly from the master branch on GitHub, or are wanting to set up mitmproxy for developement purposes, see the Hacking section of the README on GitHub. +* [Installation From Source](#docSource) ## Installation On Mac OS X @@ -67,3 +50,20 @@ C:\> pip install mitmproxy From now on you can run mitmdump from a Command Prompt. +## Installing From Source + +You can install mitmproxy with pip: + +
+$ pip install mitmproxy
+
+ +If you also want to install the optional packages AMF, protobuf and CSS +content views, do this: + +
+$ pip install "mitmproxy[contentviews]"
+
+ +If you are looking for a more information on how to install mitmproxy directly from the master branch on GitHub, or are wanting to set up mitmproxy for developement purposes, see the Hacking section of the README on GitHub. + From ea8e58f037c66fdf7523d4781720f182a1ed06da Mon Sep 17 00:00:00 2001 From: Jim Shaver Date: Sat, 25 Apr 2015 00:19:23 -0400 Subject: [PATCH 9/9] Re-org and added platform specific install from source docs, refs: mitmproxy/mitmproxy#398 --- doc-src/install.html | 76 +++++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/doc-src/install.html b/doc-src/install.html index d5a01ca3a..80298a4a8 100644 --- a/doc-src/install.html +++ b/doc-src/install.html @@ -1,27 +1,8 @@ ## On This Page -* [Installation On Mac OS X](#docOSX) * [Installation On Ubuntu](#docUbuntu) +* [Installation On Mac OS X](#docOSX) * [Installation On Windows](#docWindows) -* [Installation From Source](#docSource) - -## Installation On Mac OS X - -The easiest way to get up and running on OSX is to download the pre-built binary packages from [mitmproxy.org](http://mitmproxy.org). If you still want to install using pip, there are a few things to keep in mind: - -- If you're running a Python interpreter installed with homebrew (or similar), you may have to install some dependencies by hand. -- Make sure that XCode is installed from the App Store, and that the command-line tools have been downloaded (XCode/Preferences/Downloads). - -There are a few bits of customization you might want to do to make mitmproxy comfortable to use on OSX. The default color scheme is optimized for a dark background terminal, but you can select a palette for a light terminal background with the --palette option. You can use the OSX open program to create a simple and effective ~/.mailcap file to view request and response bodies: - -
-application/*; /usr/bin/open -Wn %s
-audio/*; /usr/bin/open -Wn %s
-image/*; /usr/bin/open -Wn %s
-video/*; /usr/bin/open -Wn %s
-
- -From now on you can run mitmproxy or mitmdump from a terminal. ## Installation On Ubuntu @@ -33,7 +14,42 @@ $ sudo apt-get install python-pip python-dev libffi-dev libssl-dev libxml2-dev l $ sudo pip install mitmproxy -From now on you can run mitmproxy or mitmdump from a terminal. +Once installation is complete you can run mitmproxy or mitmdump from a terminal. + +### Installation From Source + +If you would like to install mitmproxy directly from the master branch on GitHub or would like to get set up to contribute to the project, install the dependencies with apt: + +
+$ sudo apt-get install python-pip python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev
+
+ +Then see the Hacking section of the README on GitHub. + + +## Installation On Mac OS X + +The easiest way to get up and running on OSX is to download the pre-built binary packages from [mitmproxy.org](http://mitmproxy.org). + +There are a few bits of customization you might want to do to make mitmproxy comfortable to use on OSX. The default color scheme is optimized for a dark background terminal, but you can select a palette for a light terminal background with the --palette option. You can use the OSX open program to create a simple and effective ~/.mailcap file to view request and response bodies: + +
+application/*; /usr/bin/open -Wn %s
+audio/*; /usr/bin/open -Wn %s
+image/*; /usr/bin/open -Wn %s
+video/*; /usr/bin/open -Wn %s
+
+ +Once installation is complete you can run mitmproxy or mitmdump from a terminal. + +### Installation From Source + +If you would like to install mitmproxy directly from the master branch on GitHub or would like to get set up to contribute to the project, ithere are a few OS X specific things to keep in mind. + +- Make sure that XCode is installed from the App Store, and that the command-line tools have been downloaded (XCode/Preferences/Downloads). +- If you're running a Python interpreter installed with homebrew (or similar), you may have to install some dependencies by hand. + +Then see the Hacking section of the README on GitHub. ## Installation On Windows @@ -48,22 +64,10 @@ C:\> set PATH = C:\Python27;C:\Python27\Scripts;%PATH% C:\> pip install mitmproxy -From now on you can run mitmdump from a Command Prompt. +Once installation is complete you can run mitmdump from a Command Prompt. -## Installing From Source +### Installation From Source -You can install mitmproxy with pip: +If you would like to install mitmproxy directly from the master branch on GitHub or would like to get set up to contribute to the project, install Python as outlined above, then see the Hacking section of the README on GitHub. -
-$ pip install mitmproxy
-
- -If you also want to install the optional packages AMF, protobuf and CSS -content views, do this: - -
-$ pip install "mitmproxy[contentviews]"
-
- -If you are looking for a more information on how to install mitmproxy directly from the master branch on GitHub, or are wanting to set up mitmproxy for developement purposes, see the Hacking section of the README on GitHub.