LaTeX Package bundledoc in Ubuntu 12.04

Bismillahirrahmanirrahim.

I need a technique to do collect output in my LaTeX document. So, my LaTeX document will be exactly same with any LibreOffice document in which a single file contains all resource files. In LaTeX terms, collect output is called bundle. The tools to do that is bundledoc. bundledoc main purpose is to collect all resource files (LaTeX calls them dependencies) and package them into a single tarball file. Exactly same with what I need. In Ubuntu, bundledoc tool contained inside texlive-extra-utils package. It is an official package and my Precise already has this package. But the problem is texlive-extra-utils in Precise didn’t contain bundledoc package. texlive-extra-utils in Vivid has. So how to resolve this problem?

Automatic Package Management System


  1. Diagnose first. Compare them. Precise hereVivid here.
  2. Found the problem. Precise has no bundledoc.
  3. Search for texlive-extra-utils for Vivid. Found it in Launchpad.
  4. Open the package download page for that package in Launchpad.
  5. Download that package.
  6. Install with –simulate argument. See the output.
  7. Apparently, texlive-extra-utils for Vivid is no way compatible with Precise. It breaks texlive-base package in Precise.
  8. I failed with automatic package management system. These steps are deprecated.

latex-bundledoc3

Manual Package Management System


Special for LaTeX, actually we can install any new package by downloading the package files from CTAN. It is a big example we knew for years happened in LaTeX (CTAN) and Perl (CPAN). Big example for manual package management system.

  1. Open CTAN.
  2. Search for bundledoc.
  3. Download the package.
  4. Unzip the package.
  5. Copy the binary package to binary executable search path. I copy bundledoc package to /usr/bin directory.
  6. Copy the manual package to manpage executable search path. I copy bundledoc.1 package to /usr/local/man/man1 directory.
  7. Finish.

latex-bundledoc5

latex-bundledoc2

bundledoc command in Precise

latex-bundledoc1

Advertisements

Reduce Ubuntu Brightness

0.5

xrandr --output LVDS1 --brightness 0.5

0.1

xrandr --output LVDS1 --brightness 0.1

Normal

xrandr --output LVDS1 --brightness 1.0

Beyond Normal

xrandr --output LVDS1 --brightness 2.0

Future

If we can do reducing Ubuntu screen brightness via command line, and we now can create an application to run any Linux command line, then next we can make an application to do xrandr command above from GUI. Just slide and you can save the brightness setting. Or further, you can create any preset and use them any time you need.

Dreambox

Just simply writing on KDE Notes:

futuristic linux we want is:

  • simple 1 DEB installer for complete app including all dependencies
  • superextract from zipped files when extracting into root folder (no terminal)
  • including 1 download manager like IDM which can be used behind any proxy config and download damn fast
  • has beautiful UI plus ultraconfigurable feature by single special config app (to change all themes, resolution, de, wm, compositor, 3d cube, etc.)
  • has optional UX (like zorin) so user can changes from one UX to another in the same os
  • care with WIN key, to open menu like in unity, gnome3, and cinnamon
  • has unique apps dedicated only for it no for another os
  • has fast file manager and it should can sort by type -> group any files like windows explorer
  • has beautiful iconset (no tango, please) which is glossy like kde oxygen, or blackened flat like faenza

 

What Kind of Application Packaging?

I wanna write such this article since I know the concept of dynamic library in Linux as a contrary of static library in Windows. Why I wanna? Because this difference made Linux disliked by most users in the world. Hey, I want you to use Linux as me too. I don’t have interest to explain technical-style what is library concept, but I only need people understand. Surely, this article contains purely my opinion. Concepts of new installation system in Linux.

Windows Application Installation

  1. You take one EXE.
  2. Double click it.
  3. Installed on system.
  4. Although happen redundancy (duplicating install) some parts of another applications.
  5. But you don’t care enough because your HDD is in 100++ GB or even TB.
  6. Freedom along with users to install.

Linux Application Installation

  1. Too many ways.
  2. Too many options.
  3. Installed on system.
  4. No redundancy but your head could become sick.
  5. Too many another things should be installed along even just wanna install Marble Globe Application.

Problem Example

In Linux, we can make an example. Simply take Marble. Marble is an application focused for education (good aim, Dude) and it is a part of KDE Education Package where it was focused on Geographical teaching. Now, we can make a scenario:

  1. I wanna install Marble.
  2. I select it from Synaptic and apply.
  3. Wow, it looks like many another applications following Marble to be installed. Time felt so long for install (read: download).
  4. Marble has installed successfully.

Advantage: if you install another application from KDE Education Package such as Kgeography or Kalzium or Kturtle, you don’t need to repeat what anything together with Marble has downloaded. As short I know, this is named dynamic linked library style.

Disadvantage: usually users don’t need another. User often just need 1. Okay if user has MB/s connection at home plus Synaptic plus enough fast server. But how if the user belongs to poor country where is no fast connection? So user should download one by one Marble and another applications along it (Linux advance usually call them dependencies)? User should go to one page, then follow instruction “this program needs program C” then follow again “program C needs program D” then follow again “program D needs program E” and next until infinite? No. It is unsmart installation system.

Comparison (for clearing):

  • In Windows, imagine, imagine if you want IDM application, you will also install 100 another applications (dependencies) have to be installed in one time. But, you enough download 1 EXE contains 101 things.
  • In Linux, imagine, imagine if you want Marble application, you will also install only 50 another applications (dependencies) have to be installed in one time. But, you should download them 51 things separately. They are not packaged in one compact installer.
  • I ask you: which is easier? Which is simpler?

Problem: What I typed in disadvantage paragraph is the origin installation system of Linux. Users often love Windows ways. Although it will eats many spaces, okay. Please let user gets all in one packet. It is compact. It will ease user.

Solution?

Maybe Windows style of installation is better. Remember, user should go to a web to download Marble along all dependencies (too many programs to be downloaded) this way: download one program, next “this program needs program A”, next “this program needs program B”, next “this program needs program C”, next until crazy. Look at simplicity of windows:

  1. Install IDM? Accept EULA.
  2. Bla? Next.
  3. Next.
  4. Next.
  5. Finish.
  6. You can use IDM directly.

Enough with one single download. You should download the single installer only. Then the next-next-next system only happen after the program download finished. So, there is no headache. It is should no too many next words in the web, just package them only in single installer, and let the installer verboses in our machine. Don’t let user becomes sick on downloading what he doesn’t know (majority of users don’t know programming).

So, how if the Linux application installation system changed to Windows-like? Or, how if there is a new distro apply this installation system absolutely? Surely complete with a repository contains packaged applications? So you just download a file only from repo to install an application that before you should download too many different items? It is simple for user, Dude. I feel many users from Windows will agree with me 🙂

Solution number 2?

I know when I said this to an advance man in Indonesia, he told that such Linux installation system have been standardized. I think somebody else will give me same reasoning at future. I feel Linux experts don’t want to change this unsmart installation system to one simply and absolutely simplify users. They refuse to change. So I type this for goaling my idea 🙂

How if we keep the origin system with adding this new system? How if there is a new distro provides you old installation system (you will find too many dependencies to be downloaded) and the new one (enough with one installer). You can choose between the old if you want and the new one if you prefer with 🙂

Solution number 3?

Hah? There is solution yet? Oh, alhamdulillah. All praises to Allah. I life with Linux users for some times. I learn from them that solution is always exist. Now hear.

How if we reject my idea but add ‘Give a Friend‘ feature to Synaptic? So, what you installed yesterday in your Ubuntu, you can give the installer (the DEB packages) in one folder to you friend? The system is simply creates one folder in your USB Flash Disk and copy what you program + all dependencies needed to the folder. So your friend just do sudo dpkg -i *.deb. At least, he doesn’t need to download anything. It is smart enough or stupid? You can give a value 🙂

Sure, this solution generates some problems again.

  1. The Ubuntu version must be same → okay.
  2. How if he absolutely doesn’t know Terminal? → go to solution number 4.
  3. How if my Synaptic didn’t save yesterday downloaded program? → avoiding better than curing. Set this at Preferences > Files TAB > check at first radio button.
  4. So on.

Solution number 4?

You should not force anyone to learn Terminal. Will you force me to learn abacus if there is a calculator in my table? I am a terminal user too but please don’t do that to anyone just join. So, we can modify the Synaptic:

How if we reject but inject that system at Synaptic? So when you “Give a Friend”, Synaptic will create one single installer for you? It is simpler than change whole Linux sistem, right? Or this is silly? You can also give a value 🙂

We can imagine this system like this:

  1. Open Synaptic.
  2. Check what program you want to give to your friend. Say: Testdisk.
  3. Click on Give a Friend button beside Apply button.
  4. Choose your folder to save.
  5. Wait for seconds. Synaptic is making single installer. Successfully created at /home/you.
  6. You can copy it to your friend’s machine. And if you want, you can give it to 10.000 friends.
  7. Install it. Simple.

My solution number 3 and 4 are orders for you developers who wanna keep your security awareness or something called ideology. It is your right, Dude 🙂 Nobody forces you.

For who?

I hope somebody feels unsatisfied with Canonical or Red Hat or any major Linux makers, will take this ideas for creating new Linux distro. A “waiting for so long” distro which is dreamed by many users. Dream which is never be attended by most Linux developers.

I believe!

I believe that someday such this distro will be created. Portability, simplicity of installation system, are important! More important than security. Users need your program, not your security awareness, nor your dependencies. They always think simply. They always do 1 thinking at 1 time. Your users are single tasking humans, not multitasking machines. So I imagine someday I will take only one installer from the net and install it in 1000 Linux mahines without any downloading again 🙂

Who will realize this idea someday? I don’t know. Temporaryly, I have satisfied with nowaday Linux system. Ahamdulillah.

Seed…

You know, there is a hope. Apparently, some users be creative by doing something like I imagine about. Look at Indonesia Ubuntu Forum. Look at portablelinuxapps.com. But we are waiting for a new distro 🙂 If Ubuntu have this system, I will be glad. If Fedora, I also be glad. If Blankon, whoa, glad also 🙂 Another, still glad. Let the seed’s growing. And you can see these links:

  1. Offline Installer for Ubuntu 12.04.
  2. Cara Singkat Membuat Offline Installer Ubuntu 12.04.

If you don’t understand Indonesian, you can use Google Translate. You know, what the seed I mean? It is Keryx. An application for downloading app completely with dependencies. If you have not know yet, simply think Synaptic in Windows for downloading applications only and save them to a folder. Aha, that is Keryx. This application runs in Windows (innovative) for helping Linux users in slow connection country. So, in internet cafe (in Indonesia, internet cafes serve majority users who don’t have internet connection; and most internet cafes in Indonesia use Windows) we can run Keryx and download all applications via Keryx, save to flash disk, and install them at home. This app simplify installation in Linux. We can make .run file contains all apps downloaded by Keryx. And this single .run file can act like .exe in Windows. Wowowo, future! I have not use Keryx until now but I feel it is bright way for future Linux installation system.

I admit that Keryx has not meet all my imagination criterias. But this app seems will inspire many new developers to build new comfortable installation system. It is okay. And hope is still flying 🙂 Thanks for reading!