Skip to content

Commit 3856f3f

Browse files
committed
Added instructions on how to configure Rust on MSYS2; updated earlier instructions up to that point
1 parent 99baad3 commit 3856f3f

File tree

1 file changed

+67
-26
lines changed

1 file changed

+67
-26
lines changed

src/murfey/templates/bootstrap.html

Lines changed: 67 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
11
{% extends "base.html" %} {% block title %}Bootstrapping instructions{% endblock
22
%} {% block content %}
33
<h1>Bootstrapping instructions</h1>
4-
<h2>Installing a Linux Environment</h2>
5-
<h3>Installing Cygwin</h3>
4+
<h2>1. Setting Up a POSIX Environment</h2>
5+
<h3>Option 1: Installing Cygwin</h3>
66
<p>
7-
If you already have a Cygwin install that you would like to preserve, rename
8-
it so that it doesn't get overwritten (something like "cygwin64-old").
7+
Cygwin is a lightweight POSIX environment that provides the minimum
8+
requirements needed for a Windows client PC to efficiently transfer files to a
9+
Unix storage server. However, it currently does not support building and
10+
installing packages which have been written in Rust, which many modern Python
11+
packages, including Murfey's dependencies, now make use of. Nevertheless,
12+
older versions of Murfey will still work with it.
913
</p>
1014
<p>
11-
Download the Cygwin setup executable using this
15+
To install, download the Cygwin setup executable using this
1216
<a href="{{ proxy_path }}/cygwin/setup-x86_64.exe">mirror</a>, and then run
1317
the following from a terminal (both Command Prompt and Windows Powershell
14-
work)
18+
work):
1519
</p>
1620
<pre style="font-family: monospace">
1721
$ setup-x86_64.exe -O -R C:\cygwin64 -s {{ request.url.scheme }}://{{ netloc }}{{ proxy_path }}/cygwin -P curl,python3,rsync -q
@@ -21,38 +25,43 @@ <h3>Installing Cygwin</h3>
2125
Cygwin install command will occasionally hang after completion. In such an
2226
event, just hit Enter to return to a normal command prompt window.
2327
</p>
28+
<p>
29+
If you already have a Cygwin install that you would like to preserve, rename
30+
it so that it doesn't get overwritten (something like "cygwin64-old") before
31+
running the command line above.
32+
</p>
2433

25-
<h3>Installing MSYS2</h3>
34+
<h3>Option 2: Installing MSYS2</h3>
2635
<p>
27-
MSYS2 is a lightweight Linux environment which provides compiler support for
36+
MSYS2 is a lightweight POSIX environment which provides compiler support for
2837
the more modern programming languages used by Murfey's package dependencies.
2938
</p>
3039
<p>
31-
The Murfey server supports the forwarding of download requests to client PCs
32-
that cannot access the wider internet. Download the MSYS2 setup executable
40+
The Murfey server supports the forwarding of download requests to
41+
network-restricted client PCs. To install MSYS2, download the setup executable
3342
using this
34-
<a href="{{ proxy_path }}/msys2/distrib/msys2-x86_64-latest.exe">mirror</a>,
35-
and run the executable using the default settings. This will install it to
43+
<a href="{{ proxy_path }}/msys2/repo/distrib/msys2-x86_64-latest.exe"
44+
>mirror</a
45+
>, then run it using the default settings. This will install MSYS2 to
3646
C:\msys64.
3747
</p>
48+
<h4>A. Setting Up the Package Manager (If Network-Restricted)</h4>
3849
<p>
3950
By default, MSYS2 comes with preset lists of mirrors and servers that it
40-
installs its packages from. These will need to be disabled, and replaced with
41-
URLs of the same format that point to the Murfey server the client PC is
42-
connected to.
51+
installs its packages from. On a network-restricted PC, these will need to be
52+
replaced with files that point to the Murfey server instead. They can be
53+
downloaded via this
54+
<a href="{{ proxy_path }}/msys2/config/pacman.d.zip">link</a>.
4355
</p>
4456
<p>
45-
These lists can be found in the following folder, if the default installation
46-
options were chosen:
57+
Once downloaded, extract the files to
58+
<span style="font-family: monospace">%MSYS64%\etc\pacman.d</span>. If MSYS2
59+
was installed at the default location, this will be:
4760
</p>
4861
<pre style="font-family: monospace">
49-
C:\msys64\etc\pacman.d\mirrorlist.{environment}
50-
</pre>
51-
<p>This is an example of how the URL to the Murfey server should look like:</p>
52-
<pre style="font-family: monospace">
53-
Server = https://repo.msys2.org/mingw/x86_64/ # Original URL
54-
Server = {{ request.url.scheme }}://{{ netloc }}{{ proxy_path }}/msys2/mingw/x86_64/ # Murfey URL
62+
C:\msys64\etc\pacman.d
5563
</pre>
64+
<h4>B. Installing Dependencies</h4>
5665
<p>
5766
MSYS2 comes with multiple environments, but UCRT64 is the most modern one. In
5867
order for the Murfey client to be able to install and run its dependencies
@@ -70,12 +79,44 @@ <h3>Installing MSYS2</h3>
7079
<span style="font-family: monospace">vim</span> can also be installed by
7180
running
7281
<span style="font-family: monospace">pacman -S &lt;package-name&gt;</span>.
73-
You can browse the other packages supported by
74-
<span style="font-family: monospace">pacman</span> by searching the repo using
82+
You can browse the other packages available on MSYS2 by searching the repo
83+
using
7584
<span style="font-family: monospace">pacman -Ss &lt;package-name&gt;</span>
7685
</p>
86+
<h4>C. Configuring the Rust Package Manager (If Network-Restricted)</h4>
87+
<p>
88+
Many newer Python packages now have dependencies written in Rust that allow
89+
them to operate more efficiently. MSYS2 supports the compilation and
90+
installation of such packages, and is thus our recommended POSIX environment
91+
to use Murfey with.
92+
</p>
93+
<p>
94+
Rust packages and their associated metadata are, by default, stored in
95+
<span style="font-family: monospace">https://crates.io</span>. Package
96+
download and installation is in turn conducted by the package manager
97+
<span style="font-family: monospace">cargo</span>. For network-restricted
98+
client PCs, Murfey also supports mirroring
99+
<span style="font-family: monospace">https://crates.io</span> to facilitate
100+
the installation of Rust packages.
101+
</p>
102+
<p>
103+
To configure <span style="font-family: monospace">cargo</span>, simply
104+
download the pre-configured
105+
<span style="font-family: monospace">config.toml</span> file via this
106+
<a href="{{ proxy_path }}/rust/cargo/config.toml">link</a>. This file should
107+
then be pasted in a <span style="font-family: monospace">.cargo</span> folder,
108+
which, by default, shold be located in your User Profile homespace:
109+
</p>
110+
<pre style="font-family: monospace">%USERPROFILE%\.cargo</pre>
111+
<p>For a user named Murfey, for example, this would take the form:</p>
112+
<pre style="font-family: monospace">C:\Users\Murfey\.cargo</pre>
113+
<p>
114+
With this file configured,
115+
<span style="font-family: monospace">cargo</span> will know to look for
116+
package metadata and files via the Murfey mirror instead.
117+
</p>
77118

78-
<h2>Setting Up Python</h2>
119+
<h2>2. Setting Up Python</h2>
79120
<p>
80121
Once Python and pip are installed in the terminal, you have the option to
81122
install Murfey in either the base environment or a virtual environment. The

0 commit comments

Comments
 (0)