source: postlfs/filesystems/fuse3.xml

trunk
Last change on this file was 5d0e7b8, checked in by Douglas R. Reno <renodr@…>, 2 months ago

A bunch of tags

  • Property mode set to 100644
File size: 9.1 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY fuse3-download-http "https://github.com/libfuse/libfuse/releases/download/fuse-&fuse3-version;/fuse-&fuse3-version;.tar.gz">
8 <!ENTITY fuse3-download-ftp " ">
9 <!ENTITY fuse3-md5sum "b00bf08b27ead4a9411578777e94a1cc">
10 <!ENTITY fuse3-size "14 MB">
11 <!ENTITY fuse3-buildsize "222 MB (with tests and documentation)">
12 <!ENTITY fuse3-time "0.2 SBU (add 0.3 SBU for tests)">
13]>
14
15<sect1 id="fuse3" xreflabel="Fuse-&fuse3-version;">
16 <?dbhtml filename="fuse.html"?>
17
18
19 <title>Fuse-&fuse3-version;</title>
20
21 <indexterm zone="fuse3">
22 <primary sortas="a-fuse-3">Fuse 3</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title>Introduction to Fuse</title>
27
28 <para>
29 <application>FUSE</application> (Filesystem in Userspace) is a simple
30 interface for userspace programs to export a virtual filesystem to the
31 Linux kernel. <application>Fuse</application> also aims to provide a
32 secure method for non privileged users to create and mount their own
33 filesystem implementations.
34 </para>
35
36 &lfs121_checked;
37
38 <bridgehead renderas="sect3">Package Information</bridgehead>
39 <itemizedlist spacing="compact">
40 <listitem>
41 <para>
42 Download (HTTP): <ulink url="&fuse3-download-http;"/>
43 </para>
44 </listitem>
45 <listitem>
46 <para>
47 Download (FTP): <ulink url="&fuse3-download-ftp;"/>
48 </para>
49 </listitem>
50 <listitem>
51 <para>
52 Download MD5 sum: &fuse3-md5sum;
53 </para>
54 </listitem>
55 <listitem>
56 <para>
57 Download size: &fuse3-size;
58 </para>
59 </listitem>
60 <listitem>
61 <para>
62 Estimated disk space required: &fuse3-buildsize;
63 </para>
64 </listitem>
65 <listitem>
66 <para>
67 Estimated build time: &fuse3-time;
68 </para>
69 </listitem>
70 </itemizedlist>
71
72 <bridgehead renderas="sect3">Fuse Dependencies</bridgehead>
73 <bridgehead renderas="sect4">Optional</bridgehead>
74 <para role="optional">
75 <xref linkend="doxygen"/> (to rebuild the API documentation),
76 <xref linkend="pytest"/> (required for tests), and
77 <ulink url="https://pypi.org/project/looseversion/">looseversion</ulink>
78 (for tests)
79 </para>
80
81 </sect2>
82
83 <sect2 role="kernel" id="fuse-kernel">
84 <title>Kernel Configuration</title>
85
86 <para>
87 Enable the following options in the kernel configuration and recompile the
88 kernel if necessary:
89 </para>
90
91 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
92 href="fuse-kernel.xml"/>
93
94 <para>
95 Character devices in userspace should be enabled too for running the
96 tests:
97 </para>
98
99 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
100 href="fuse-test-kernel.xml"/>
101
102 <indexterm zone="fuse3 fuse-kernel">
103 <primary sortas="d-fuse3">Fuse 3</primary>
104 </indexterm>
105 </sect2>
106
107 <sect2 role="installation">
108 <title>Installation of Fuse</title>
109
110 <para>
111 Install <application>Fuse</application> by running the following
112 commands:
113 </para>
114
115<screen><userinput>sed -i '/^udev/,$ s/^/#/' util/meson.build &amp;&amp;
116
117mkdir build &amp;&amp;
118cd build &amp;&amp;
119
120meson setup --prefix=/usr --buildtype=release .. &amp;&amp;
121ninja</userinput></screen>
122
123 <para>
124 The API documentation is included in the package, but
125 if you have <xref linkend="doxygen"/> installed and wish to rebuild
126 it, issue:
127 </para>
128
129<screen remap="doc"><userinput>pushd .. &amp;&amp;
130 doxygen doc/Doxyfile &amp;&amp;
131popd</userinput></screen>
132
133 <para>
134 To test the results, issue the following commands (as the <systemitem
135 role="username">root</systemitem> user):
136 </para>
137
138 <!-- EDITORS NOTE:
139
140 Don't use 'pytest' instead of 'python3 -m pytest'. There is no
141 testenv/bin/pytest (as at pytest-7.4.0) so 'pytest' resolves to
142 /usr/bin/pytest, and the shebang of it is /usr/bin/python3.11.
143 So it won't find the looseversion installed in testenv.
144
145 To view the results of the tests, look for
146 "short test summary info" at the end of your log. Below skipped tests,
147 you will see "X passed, X skipped, X failed (if any) in X seconds" -->
148
149<screen role="root" remap="test"><userinput>python3 -m venv --system-site-packages testenv &amp;&amp;
150source testenv/bin/activate &amp;&amp;
151pip3 install looseversion &amp;&amp;
152python3 -m pytest
153deactivate</userinput></screen>
154
155 <para>
156 The <xref linkend="pytest"/> Python
157 module is required for the tests. One test named
158 <filename>test_cuse</filename> will fail if the
159 <parameter>CONFIG_CUSE</parameter> configuration item was not enabled
160 when the kernel was built. One test,
161 <filename>test/util.py</filename>, will output a warning due to the usage
162 of an unknown mark in pytest.
163 <!-- I really don't know why. But it always happen for me, maybe
164 kernel configuration issue... -->
165 One test named
166 <filename>test_notify_inval_entry[True-expire_entries]</filename>
167 may fail under certain circumstances.
168 </para>
169
170 <para>
171 Now, as the <systemitem class="username">root</systemitem> user:
172 </para>
173
174<screen role="root"><userinput>ninja install &amp;&amp;
175chmod u+s /usr/bin/fusermount3 &amp;&amp;
176
177cd .. &amp;&amp;
178cp -Rv doc/html -T /usr/share/doc/fuse-&fuse3-version; &amp;&amp;
179install -v -m644 doc/{README.NFS,kernel.txt} \
180 /usr/share/doc/fuse-&fuse3-version;</userinput></screen>
181
182 </sect2>
183
184 <sect2 role="commands">
185 <title>Command Explanations</title>
186
187 <para>
188 <command>sed ... util/meson.build</command>: This command disables the
189 installation of a boot script and udev rule that are not needed.
190 </para>
191
192<!--
193 <para>
194 <command>sed ... meson.build</command>: This command fixes a bug with the
195 test_passthrough_hp test.
196 </para>
197-->
198
199 <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
200 href="../../xincludes/meson-buildtype-release.xml"/>
201
202 </sect2>
203
204 <sect2 role="configuration" id="fuse-configuration">
205 <title>Configuring fuse</title>
206
207 <sect3 id="fuse-config">
208 <title>Config Files</title>
209
210 <para>
211 Some options regarding mount policy can be set in the file
212 <filename>/etc/fuse.conf</filename>. To install the file run the
213 following command as the <systemitem class="username">root</systemitem>
214 user:
215 </para>
216
217<screen role="root"><userinput>cat &gt; /etc/fuse.conf &lt;&lt; "EOF"
218<literal># Set the maximum number of FUSE mounts allowed to non-root users.
219# The default is 1000.
220#
221#mount_max = 1000
222
223# Allow non-root users to specify the 'allow_other' or 'allow_root'
224# mount options.
225#
226#user_allow_other</literal>
227EOF</userinput></screen>
228
229 <para>
230 Additional information about the meaning of the configuration
231 options are found in the man page.
232 </para>
233
234 </sect3>
235
236 </sect2>
237
238 <sect2 role="content">
239 <title>Contents</title>
240
241 <segmentedlist>
242 <segtitle>Installed Programs</segtitle>
243 <segtitle>Installed Libraries</segtitle>
244 <segtitle>Installed Directory</segtitle>
245
246 <seglistitem>
247 <seg>
248 fusermount3 and mount.fuse3
249 </seg>
250 <seg>
251 libfuse3.so
252 </seg>
253 <seg>
254 /usr/include/fuse3 and /usr/share/doc/fuse-&fuse3-version;
255 </seg>
256 </seglistitem>
257 </segmentedlist>
258
259 <variablelist>
260 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
261 <?dbfo list-presentation="list"?>
262 <?dbhtml list-presentation="table"?>
263
264 <varlistentry id="fusermount3">
265 <term><command>fusermount3</command></term>
266 <listitem>
267 <para>
268 is a suid root program to mount and unmount Fuse filesystems
269 </para>
270 <indexterm zone="fuse3 fusermount3">
271 <primary sortas="b-fusermount3">fusermount3</primary>
272 </indexterm>
273 </listitem>
274 </varlistentry>
275
276 <varlistentry id="mount.fuse3">
277 <term><command>mount.fuse3</command></term>
278 <listitem>
279 <para>
280 is the command <command>mount</command> calls to mount a Fuse
281 filesystem
282 </para>
283 <indexterm zone="fuse3 mount.fuse3">
284 <primary sortas="b-mount.fuse3">mount.fuse3</primary>
285 </indexterm>
286 </listitem>
287 </varlistentry>
288
289 <varlistentry id="libfuse3">
290 <term><filename class="libraryfile">libfuse3.so</filename></term>
291 <listitem>
292 <para>
293 contains the <application>FUSE</application> API functions
294 </para>
295 <indexterm zone="fuse3 libfuse3">
296 <primary sortas="c-libfuse3">libfuse3.so</primary>
297 </indexterm>
298 </listitem>
299 </varlistentry>
300
301 </variablelist>
302
303 </sect2>
304
305</sect1>
Note: See TracBrowser for help on using the repository browser.