<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Oket</id>
	<title>VideoLAN Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Oket"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Oket/"/>
	<updated>2026-11-04T17:14:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation_Talk:Installing_VLC&amp;diff=19343</id>
		<title>Documentation Talk:Installing VLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation_Talk:Installing_VLC&amp;diff=19343"/>
		<updated>2011-06-15T16:53:38Z</updated>

		<summary type="html">&lt;p&gt;Oket: better formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page still needs some fixing and updating. [[User:Dionoea|Dionoea]] 00:12, 7 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
== Advanced Installation: Portable / Networked / Sandboxed / etc (Debian) ==&lt;br /&gt;
&lt;br /&gt;
The syntax here is for Debian (and thus Ubuntu etc too: this was tested on Ubuntu 10.04), but it should be trivial to translate it to any other modern distro.&lt;br /&gt;
&lt;br /&gt;
There are times a normal install just isn&#039;t desirable or even possible, and you need something a little bit more funky.&lt;br /&gt;
(Maybe you could be working on any of a number of virtualised machines and any point, and putting VLC in the base image isn&#039;t an option; or you want to use an app server, etc).&lt;br /&gt;
&lt;br /&gt;
If you start with a &amp;quot;genuinely clean&amp;quot; machine and look at what will be sucked in for a VLC install, it can be quite shocking: *72* base packages, plus another 14 recommends/suggests, and ~100MB. That&#039;s more than a 12% increase to the total size of the VM base image. More importantly, it&#039;s 69 libraries that I have absolulely no use for outside of VLC, and in fact explicitly &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; want on the system where things like nautilus will try to suck them in and use them (and they represent 69 new attack vectors).&lt;br /&gt;
&lt;br /&gt;
Don&#039;t misunderstand: this is the &#039;right&#039; way to write software. But it&#039;s not what I actually want in this case. What I want is a walled garden for VLC, with only VLC allowed to use this (massive collection of) libs.&lt;br /&gt;
&lt;br /&gt;
So, how do we manage that? Turns out it&#039;s actually really easy...&lt;br /&gt;
&lt;br /&gt;
First we need to get the files &#039;somewhere&#039;: we just don&#039;t want them in the &amp;quot;normal&amp;quot; package list.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/$ mkdir vlc &amp;amp;&amp;amp; cd vlc &amp;amp;&amp;amp; mkdir -p archives/partial&lt;br /&gt;
~/vlc$ sudo apt-get -d -o Dir::Cache=. install vlc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
That will grab the packages from the repo, complete with all the dependencies (if you have apt set to default to --no-recommends, you&#039;ll need to add &amp;quot;vlc-plugin-pulse&amp;quot; or anything else you want as well) and put them in our working directory.&lt;br /&gt;
&lt;br /&gt;
Take a look at what&#039;s actually in a package, if you&#039;re curious:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/vlc$ dpkg -c archives/libxcb-randr0_1.5-2_i386.deb&lt;br /&gt;
&lt;br /&gt;
-rw-r--r-- root/root   34124 2010-01-20 03:11 ./usr/lib/libxcb-randr.so.0.1.0&lt;br /&gt;
lrwxrwxrwx root/root       0 2010-01-20 03:10 ./usr/lib/libxcb-randr.so.0 -&amp;gt; libxcb-randr.so.0.1.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There&#039;s a bunch of noise like manpages etc too, but these are the only pieces that are actually important. There&#039;s the lib itself, a symlink for versioning, and that&#039;s it.&lt;br /&gt;
But here&#039;s what&#039;s brilliant: the files are &#039;relative&#039; paths, and that&#039;s what makes this  so trivial...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/vlc$ find archives/*.deb -print |xargs -t -I {} dpkg -x {} .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That pulls all the libs out and drops them in our sandbox, and then running vlc is as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
~/vlc$ export LD_LIBRARY_PATH=usr/lib/&lt;br /&gt;
~/vlc$ usr/bin/vlc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and that&#039;s all there is to it.  :D&lt;br /&gt;
&lt;br /&gt;
You can use this to install vlc on an app share, without &amp;quot;polluting&amp;quot; any of the clients and still allowing them to each keep their own configuration in ~/.config/vlc/&lt;br /&gt;
&#039;Very&#039; handy if e.g. you work on a virtual machine where the base image is immutable and your home dir is the only thing that persists between sessions; or a real machine that&#039;s maintained by an IT dept.&lt;br /&gt;
&lt;br /&gt;
A trivial variation on it will also let you create a &amp;quot;portable&amp;quot; version of VLC that you can stick on a USB drive along with some music / videos / whatever and use on any machine.&lt;/div&gt;</summary>
		<author><name>Oket</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Documentation_Talk:Installing_VLC&amp;diff=19342</id>
		<title>Documentation Talk:Installing VLC</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Documentation_Talk:Installing_VLC&amp;diff=19342"/>
		<updated>2011-06-15T16:47:10Z</updated>

		<summary type="html">&lt;p&gt;Oket: /* Advanced Installation: Portable / Networked / Sandboxed / etc (Debian) */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page still needs some fixing and updating. [[User:Dionoea|Dionoea]] 00:12, 7 November 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
== Advanced Installation: Portable / Networked / Sandboxed / etc (Debian) ==&lt;br /&gt;
&lt;br /&gt;
The syntax here is for Debian (and thus Ubuntu etc too: this was tested on Ubuntu 10.04), but it should be trivial to translate it to any other modern distro.&lt;br /&gt;
&lt;br /&gt;
There are times a normal install just isn&#039;t desirable or even possible, and you need something a little bit more funky.&lt;br /&gt;
(Maybe you could be working on any of a number of virtualised machines and any point, and putting VLC in the base image isn&#039;t an option; or you want to use an app server, etc).&lt;br /&gt;
&lt;br /&gt;
If you start with a &amp;quot;genuinely clean&amp;quot; machine and look at what will be sucked in for a VLC install, it can be quite shocking: *72* base packages, plus another 14 recommends/suggests, and ~100MB. That&#039;s more than a 12% increase to the total size of the VM base image. More importantly, it&#039;s 69 libraries that I have absolulely no use for outside of VLC, and in fact explicitly &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; want on the system where things like nautilus will try to suck them in and use them (and they represent 69 new attack vectors).&lt;br /&gt;
&lt;br /&gt;
Don&#039;t misunderstand: this is the &#039;right&#039; way to write software. But it&#039;s not what I actually want in this case. What I want is a walled garden for VLC, with only VLC allowed to use this (massive collection of) libs.&lt;br /&gt;
&lt;br /&gt;
So, how do we manage that? Turns out it&#039;s actually really easy...&lt;br /&gt;
&lt;br /&gt;
First we need to get the files &#039;somewhere&#039;: we just don&#039;t want them in the &amp;quot;normal&amp;quot; package list.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
~/$ mkdir vlc &amp;amp;&amp;amp; cd vlc &amp;amp;&amp;amp; mkdir -p archives/partial&lt;br /&gt;
~/vlc$ sudo apt-get -d -o Dir::Cache=. install vlc&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
That will grab the packages from the repo, complete with all the dependencies (if you have apt set to default to --no-recommends, you&#039;ll need to add &amp;quot;vlc-plugin-pulse&amp;quot; or anything else you want as well) and put them in our working directory.&lt;br /&gt;
&lt;br /&gt;
Take a look at what&#039;s actually in a package, if you&#039;re curious:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
~/vlc$ dpkg -c archives/libxcb-randr0_1.5-2_i386.deb&lt;br /&gt;
&lt;br /&gt;
-rw-r--r-- root/root   34124 2010-01-20 03:11 ./usr/lib/libxcb-randr.so.0.1.0&lt;br /&gt;
lrwxrwxrwx root/root       0 2010-01-20 03:10 ./usr/lib/libxcb-randr.so.0 -&amp;gt; libxcb-randr.so.0.1.0&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There&#039;s a bunch of noise like manpages etc too, but these are the only pieces that are actually important. There&#039;s the lib itself, a symlink for versioning, and that&#039;s it.&lt;br /&gt;
But here&#039;s what&#039;s brilliant: the files are &#039;relative&#039; paths, and that&#039;s what makes this  so trivial...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
~/vlc$ find archives/*.deb -print |xargs -t -I {} dpkg -x {} .&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That pulls all the libs out and drops them in our sandbox, and then running vlc is as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
~/vlc$ export LD_LIBRARY_PATH=usr/lib/&lt;br /&gt;
~/vlc$ usr/bin/vlc&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and that&#039;s all there is to it.  :D&lt;br /&gt;
&lt;br /&gt;
You can use this to install vlc on an app share, without &amp;quot;polluting&amp;quot; any of the clients and still allowing them to each keep their own configuration in ~/.config/vlc/&lt;br /&gt;
&#039;Very&#039; handy if e.g. you work on a virtual machine where the base image is immutable and your home dir is the only thing that persists between sessions; or a real machine that&#039;s maintained by an IT dept.&lt;br /&gt;
&lt;br /&gt;
A trivial variation on it will also let you create a &amp;quot;portable&amp;quot; version of VLC that you can stick on a USB drive along with some music / videos / whatever and use on any machine.&lt;/div&gt;</summary>
		<author><name>Oket</name></author>
	</entry>
</feed>