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 ?
-
xserver-xorg
as the graphics manager. -
xinit
as the window manager bootstraptor (one more display manager is not nessesary here). -
i3
as the window manager. -
inkscape
as the vector graphics editor. -
chrome
as the browser. jdk8
-
vim
as the text editor. - other stuffs
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 ?
How to make it ?
- Install Unetbootin.
- Use
Unetbootin
to create a bootable USB stick withUbuntu 14.04 NetInstall x64
option. - Use the USB stick to install Ubuntu on the hard disk or the USB stick itself. You'll be asked to choose some window manager and some package bundles , don't choose any of this list:
- After the above process finished and the system rebooted, install git by running
sudo apt-get install git
. - Clone this repo to your home directory
/home/<your-username>
. - Be sure you're in the home directory, run the setup
sudo chmod a+x ./minimal-ubuntu-setup.sh && ./minimal-ubuntu-setup.sh
- Done!
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
- Find a way to keep changes in /boot/grub/grub.cfg from overwritten after update kernel. ref: Is it possible to edit grub.cfg?
- Learn more about GRUB
- Grub Customizer
- How to: Create a Customized GRUB2 Screen that is Maintenance Free.