What's it ?

A setup script and dot files that helps you build up a minimal but powerful Ubuntu system with the Unix philosophy Do One Thing and Do It Well in mind for developer.

Why ?

We usually expect more than what a single thing provides, this leads to a scene where one thing has to do many jobs. Did it do them well ? Are you happy with it ? The answers usually are No and No!

Why you have to want your Vim become a Python IDE that includes a debugger, a autocompleter, a builder, a VCS client... and in fact that you never be happy with it, because there is always something that not perfect and you never accept that.

So ... what's the point ?

The point is Vim was not made to achieve that goal (becomes a Python IDE). What you did just forces it to be. Try PyCharm CE, it was made to become a powerful Python IDE, and that's what you need.

So ... what's the better solution ?

Don't force one thing do more than one job, if you want more, create or find a new thing which should be made to do that job.

What does it bring to you ?

The system only takes about 78MB of RAM at startup. With 4GB of RAM, you will feel so comfortable even the system's running chrome with a bundle of tabs, android-studio and 1 or 2 android emulator(s).

How does it look like ?

screenshot-201511202313-0.png

screenshot-201511202313-1.png

How to make it ?

Clone the system to another computer

Note: Below steps requires you installed the system on the USB stick in the above 3rd step

Note: You need at least basic knowledge of GRUB first.

Note: The current OS is runnning on the new computer will be not affected.

You should be in the system that booted from the USB stick now. Check the partition id where the system was installed to:

sudo fdisk -l

I assume that it's /dev/sdb1.

Next, you need to create a new ext4 partition on the hard disk of the new computer. To do this, you can use fdisk(Linux) or Minitool Partition Wizard (Windows). I assume the new partition at /dev/sda6.

Next, clone the system in the USB to the new partition in the new computer:

dd if=/dev/sdb1 of=/dev/sda6 conv=notrunc

Because I cloned so /dev/sdb1 and /dev/sda6 has the same UUID now. We need to change it.

Generate a new UUID:

uuidgen

Change /dev/sda6's UUID:

sudo tune2fs /dev/sda6 -U <new-uuid>

Next, update the GRUB configuration in the USB:

sudo update-grub

Make sure all partition IDs, UUIDs are correct in /boot/grub/grub.cfg (IMPORTANT!, the system is not bootable if something wrong). To list all UUIDs of partitions:

ll /dev/disk/by-uuid

Reboot and choose the GRUB menu entry of the Ubuntu system installed on the hard disk.

To be sure that you choosed the Ubuntu system on the hard disk, after the system booted up, run mount you should see something like this:

/dev/sda6 on / type ext4 (rw,errors=remount-ro)

Right now, you can only boot the system on the hard disk by the USB stick, because GRUB installed on the USB, not on the hard disk.

Next, we need to install GRUB on the hard disk of the new computer:

sudo grub-install /dev/sda

Make sure all partition IDs, UUIDs are correct in /boot/grub/grub.cfg (IMPORTANT!, the system is not bootable if something wrong).

Ref: Resize the new partition after cloning

Ref: Don't clone a bigger partition to a smaller partition

TODOs