-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
211 lines (184 loc) · 9.75 KB
/
index.html
File metadata and controls
211 lines (184 loc) · 9.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<link href='https://fonts.googleapis.com/css?family=Chivo:900' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css" media="screen">
<link rel="stylesheet" type="text/css" href="stylesheets/github-dark.css" media="screen">
<link rel="stylesheet" type="text/css" href="stylesheets/print.css" media="print">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<title>Pakit</title>
</head>
<body>
<div id="container">
<div class="inner">
<header>
<h1><img alt="Pakit" src="images/pakit-logo.png" width="30%" /></h1>
<h2>A Python Based Package Manager</h2>
</header>
<div id="github" class="clearfix">
<p>
<a href="https://github.com/starcraftman/pakit" id="view-on-github" class="button"><span>Pakit Core</span></a>
<a href="https://github.com/pakit" id="view-on-github" class="button"><span>Pakit Group</span></a>
</p>
</div>
<hr>
<div id="badges">
<p>
<a class="reference external" href="https://travis-ci.org/starcraftman/pakit"><img alt="Travis" src="https://travis-ci.org/starcraftman/pakit.svg?branch=master" /></a>
<a class="reference external" href="https://coveralls.io/github/starcraftman/pakit?branch=master"><img alt="Coveralls" src="https://coveralls.io/repos/starcraftman/pakit/badge.svg?branch=master&service=github" /></a>
<a class="reference external" href="http://waffle.io/starcraftman/pakit"><img alt="Stories in Ready" src="https://badge.waffle.io/starcraftman/pakit.svg?label=ready&title=Ready" /></a>
<a class="reference external" href="https://gitter.im/starcraftman/pakit?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"><object data="https://badges.gitter.im/Join%20Chat.svg" type="image/svg+xml">Join the chat at https://gitter.im/starcraftman/pakit</object></a>
</p>
<p>
<a class="reference external" href="https://pypi.python.org/pypi/pakit"><object data="https://img.shields.io/pypi/pyversions/pakit.svg" type="image/svg+xml">Python</object></a>
<a class="reference external" href="https://pypi.python.org/pypi/pakit"><object data="https://img.shields.io/pypi/l/Django.svg" type="image/svg+xml">License</object></a>
<a class="reference external" href="https://pypi.python.org/pypi/pakit"><object data="https://img.shields.io/pypi/v/pakit.svg" type="image/svg+xml">Version</object></a>
<a class="reference external" href="https://pypi.python.org/pypi/pakit"><object data="https://img.shields.io/pypi/status/pakit.svg" type="image/svg+xml">Status</object></a>
</p>
</div>
<hr>
<section id="main_content">
<h3>Description</h3>
<p>Pakit is a small python based package manager that builds programs from
source.</p>
<p>Pakit provides:</p>
<ol class="arabic simple">
<li>A package manager interface to install, remove & update programs.</li>
<li>A simple Recipe specification to build programs from source code.</li>
<li>Premade and tested
<a class="reference external" href="https://github.com/pakit/base_recipes">recipes</a>
maintained by pakit.</li>
</ol>
<p>When you install a program Pakit will...</p>
<ol class="arabic simple">
<li>download the source into a silo in <tt class="docutils literal">pakit.paths.source</tt> and build
it.</li>
<li>install the program into a silo under <tt class="docutils literal">pakit.paths.prefix</tt>.</li>
<li>link the silo to the <tt class="docutils literal">pakit.paths.link</tt> directory.</li>
</ol>
<p>Want a longer explanation? See the
<a class="reference internal" href="#overview">Overview</a> section.</p>
<div class="section" id="demo">
<h3>Demo</h3>
<p>The following demonstration covers most of the basic functions.</p>
<p><a class="reference external" href="https://github.com/starcraftman/pakit/blob/master/DEMO.md#demo"><img alt="Pakit Demo" src="https://github.com/pakit/demo/raw/master/demo.gif" /></a></p>
<p>Try the
<a class="reference external" href="https://github.com/starcraftman/pakit/blob/master/DEMO.md#demo">demo</a>
yourself after installing pakit.</p>
</div>
<div class="section" id="install-pakit">
<h3>Install Pakit</h3>
<p>To use pakit:</p>
<ol class="arabic simple">
<li>Ensure you have a <a class="reference internal" href="#pip">build environment</a> for compiling the programs.</li>
<li>Fetch pakit via <a class="reference internal" href="#pip">pip</a> or <a class="reference internal" href="#github">github</a>.</li>
<li>Modify your <a class="reference internal" href="#path">$PATH</a>.</li>
</ol>
</div>
<div class="section" id="pip">
<h4>Build Environment</h4>
<p>At this point pakit has two limitations to be aware of:</p>
<ul class="simple">
<li>Relies on user's build environment.</li>
<li>Pakit recipes can only depend on things pakit can build, currently
limited pool. User needs to install any dependencies pakit can't
build.</li>
</ul>
<p>To use pakit, I suggest you have...</p>
<ul class="simple">
<li>c++ build environment</li>
<li>git</li>
<li>anything a recipe depends on that pakit can't build</li>
</ul>
<p>For Ubuntu install these packages:</p>
<pre class="code bash literal-block">
sudo apt-get install build-essential automake autoconf python-pip git liblzma-dev libevent-dev ncurses-dev
</pre>
</div>
<div class="section" id="github">
<h4>Github</h4>
<p>Fetch the latest from the source. Works unless the build badge says
failing.</p>
<pre class="code bash literal-block">
git clone https://github.com/starcraftman/pakit.git
<span class="name builtin">export </span><span class="name variable">PATH</span><span class="operator">=</span><span class="keyword">$(</span><span class="name builtin">pwd</span><span class="keyword">)</span>/pakit/bin:<span class="name variable">$PATH</span>
python pakit/setup.py deps release
</pre>
</div>
<div class="section" id="pip">
<h4>pip</h4>
<p>Install the latest stable pip release. It might be old but working.</p>
<pre class="code bash literal-block">
sudo -H pip install pakit
</pre>
</div>
<div class="section" id="path">
<h4>$PATH</h4>
<p>By default, pakit will install programs under <tt class="docutils literal">pakit.paths.prefix</tt> and
link everything to <tt class="docutils literal">pakit.paths.link</tt>. To use the built programs,
<tt class="docutils literal">pakit.paths.link</tt>/bin must be on your $PATH. So for example, with the
default value of <tt class="docutils literal">pakit.paths.link</tt>, you would need to:</p>
<pre class="code bash literal-block">
<span class="name builtin">export </span><span class="name variable">PATH</span><span class="operator">=</span>/tmp/pakit/links/bin:<span class="name variable">$PATH</span>
</pre>
<p>The above exports will only last for the terminal session. To make them
permanent for bash, edit <tt class="docutils literal"><span class="pre">$HOME/.bashrc</span></tt> or <tt class="docutils literal"><span class="pre">$HOME/.bash_aliases</span></tt>.</p>
</div>
<div class="section" id="more-information">
<h3>More Information</h3>
<p>From inside the pakit source folder:</p>
<ul class="simple">
<li>Help: <tt class="docutils literal">pakit <span class="pre">--help</span></tt></li>
<li>Consult man: <tt class="docutils literal">man pakit</tt></li>
<li>Read pydocs: <tt class="docutils literal">pydoc pakit</tt> or <tt class="docutils literal">pydoc pakit.shell</tt> and so on...</li>
<li>Install all development packages: <tt class="docutils literal">python setup.py deps</tt></li>
<li>Run the test suite: <tt class="docutils literal">tox</tt></li>
<li>See <a class="reference external" href="http://waffle.io/starcraftman/pakit">Waffle</a> for things I'm
working on.</li>
<li>Read <tt class="docutils literal">DESIGN.md</tt> for details on design. A bit out of date.</li>
</ul>
</div>
<div class="section" id="contributors">
<h3>Contributors</h3>
<ul class="simple">
<li><a href="https://github.com/starcraftman" class="user-mention">@starcraftman</a>/Jeremy Pallats</li>
</ul>
</div>
<div class="section" id="overview">
<h1>Overview</h1>
<p>Basically I want to make a universal package manager on python. Runs
everywhere, builds anything and handles dependencies. A bit like a meta
build tool tying arbitrary recipes together. At the end of the day, will
probably resemble Homebrew at least a little.</p>
<p>Importantly, the recipes should be configurable via a single YAML file
that users can modify without changing the recipes. Say you want to pass
particular flags to the <tt class="docutils literal">vim</tt> or <tt class="docutils literal">ag</tt> build, you'd just put them in
an entry in the config.</p>
<p>Expected Feature Overview:</p>
<ul class="simple">
<li>Python only, with minimal dependencies.</li>
<li>Package manager interface, install remove and update recipes.</li>
<li>100% tested, framework & supported recipes.</li>
<li>Should work on any POSIX system, emphasis on Linux.</li>
<li>Simple recipe specification.</li>
<li>Configuration via a single YAML file.</li>
<li>Available via <a class="reference external" href="https://pypi.python.org/pypi/pakit">pip</a>.</li>
<li>Traceability via logs for every command.</li>
<li>Premade & tested recipes available for use.</li>
</ul>
<p>See
<a class="reference external" href="https://github.com/starcraftman/pakit/blob/master/DESIGN.md">DESIGN.md</a>
for more details.</p>
</div>
</section>
<footer>
Based on Tactile theme by <a href="https://twitter.com/jasonlong">Jason Long</a>.
</footer>
</div> <!-- Inner div -->
</div> <!-- Container div -->
</body>
</html>