Minor Project Ecblinux an OS for Newbies
Total Page:16
File Type:pdf, Size:1020Kb
A Minor Project On ECBlinux an OS for Newbies Submitted for the partial fulfillment of Bachelor of Technology IN COMPUTER SCIENCE 2010-11 Submitted By:- SHARAD KUMAR (4thyr , CSE) Scholar No – 07/01/82 Submitted To:- Project name Linux OS for Newbies [ ECBlinux ] Project Guide Mr. RAHUL BHUSHAN RANGA Presenting Author SHARAD KUMAR (CSE ,final year ) E-mail [email protected] 1 CONTENTS 1. Introduction------------------------------------------------------ 3 2. Requirements Check-------------------------------------------- 4 3. Setup.sh----------------------------------------------------------- 5 4. Copyresources.sh------------------------------------------------ 6 5. Apply_gconf_settings.sh--------------------------------------- 7-8 6. Apply_themes_changes.sh------------------------------------- 8-11 7. Lsbrelease-------------------------------------------------------- 12 8. Modify_sourcelist.sh-------------------------------------------- 12-13 9. Add_or_remove_packages.sh---------------------------------- 13-16 10. Process Log------------------------------------------------------ 16-28 11. How To ---------------------------------------------------------- 29-44 2 Introduction: There are always many ways to accomplish a single task.The same can be said about Linux distributions. A great many have existed over the years. Some still exist, some have morphed into something else, yet others have been relegated to our memories. They all do things differently to suit the needs of their target audience. Because so many different ways to accomplish the same end goal exist, I began to realize I no longer had to be limited by any one implementation. Prior to discovering Linux, we simply put up with issues in other Operating Systems as you had no choice. It was what it was, whether you liked it or not. With Linux, the concept of choice began to emerge. If you didn't like something, you were free, even encouraged, to change it. I tried a number of distributions and could not decide on any one. They were great systems in their own right. It wasn't a matter of right and wrong anymore. It had be- come a matter of personal taste. With all that choice available, it became apparent that there would not be a single system that would be perfect for me. So I set out to create my own Linux system that would fully conform to my personal preferences. To truly make it my own system, I resolved to compile everything from source code instead of using pre-compiled binary packages. This “perfect” Linux system would have the strengths of various systems without their perceived weaknesses. Requirements :- • Bash-2.05a (/bin/sh should be a symbolic or hard link to bash) • Binutils-2.12 (Versions greater than 2.20 are not recommended ) • Bison-1.875 (/usr/bin/yacc should be a link to bison or small script that executes bison) • Bzip2-1.0.2 • Coreutils-5.0 (or Sh-Utils-2.0, Textutils-2.0, and Fileutils-4.1) • Diffutils-2.8 • Findutils-4.1.20 • Gawk-3.0 (/usr/bin/awk should be a link to gawk) • Gcc-3.0.1 (Versions greater than 4.4.3 are not recommended ) • Glibc-2.2.5 (Versions greater than 2.11.1 are not recommended) • Grep-2.5 • Gzip-1.2.4 • Linux Kernel-2.6.18 (having been compiled with GCC-3.0 or greater) 3 To check above requirements :- #!/bin/bash export LC_ALL=C # Simple script to list version numbers of critical development tools bash --version | head -n1 | cut -d" " -f2-4 echo "/bin/sh -> `readlink -f /bin/sh`" echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- bison --version | head -n1 if [ -e /usr/bin/yacc ]; then echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`"; else echo "yacc not found"; fi bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6- echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2 diff --version | head -n1 find --version | head -n1 gawk --version | head -n1 if [ -e /usr/bin/awk ]; then echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`"; else echo "awk not found"; fi gcc --version | head -n1 /lib/libc.so.6 | head -n1 | cut -d"," -f1 grep --version | head -n1 gzip --version | head -n1 cat /proc/version m4 --version | head -n1 make --version | head -n1 patch --version | head -n1 echo Perl `perl -V:version` sed --version | head -n1 tar --version | head -n1 echo "Texinfo: `makeinfo --version | head -n1`" echo 'main(){}' > dummy.c && gcc -o dummy dummy.c if [ -x dummy ]; then echo "Compilation OK"; else echo "Compilation failed"; fi rm -f dummy.c dummy 4 SETUP.sh #!/bin/bash export HOME=/etc/skel ./Apply_Gconf_Setting.sh ./"Apply Theme Changes.sh" ############################################ ./Modify_SourceList.sh apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AC1F27D74EA7974E apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A8A515F046D7E7CF apt-get update ./Add_Remove_Packages.sh ## install wine ################### revert back source.lsit ################################ rm /etc/apt/sources.list cp ./sources.list.backup /etc/apt/sources.list ###################################################################### exit 0 CopyResources.sh ########## changes Splash Images of Live CD ######### sudo cp images/splash.pcx ~/tmp/remaster-iso/isolinux/splash.pcx sudo cp images/splash.png ~/tmp/remaster-iso/isolinux/splash.png ########## changes text of grub of Live CD ######### sudo cp images/text.cfg ~/tmp/remaster-iso/isolinux/text.cfg sudo cp unetbootin-windows-442.exe ~/tmp/remaster-iso/ 5 sudo cp ./"How to create Live USB.pdf" ~/tmp/remaster-iso/ sudo cp ./"Installation Guide.pdf" ~/tmp/remaster-iso/ ########## Changes String in Wubi #################### sudo cp images/autorun.inf ~/tmp/remaster-iso/autorun.inf ####################################################### #### Copy resource to tmp direcory #TODO -- this will copy your SVN directory too so you need to modify these commands BUt tmp folder will be deleted IMO so no need to worry much. cp -R Ebooks ~/tmp/remaster-root/tmp cp -R images ~/tmp/remaster-root/tmp cp -R nautilus-scripts ~/tmp/remaster-root/tmp cp -R Templates ~/tmp/remaster-root/tmp cp -R slides ~/tmp/remaster-root/tmp cp *.sh ~/tmp/remaster-root/tmp cp bashrc ~/tmp/remaster-root/tmp mkdir -p ~/tmp/remaster-root/tmp/gedit-extra cp -v gedit-extra/compile ~/tmp/remaster-root/tmp/gedit-extra cp -v gedit-extra/run ~/tmp/remaster-root/tmp/gedit-extra ###TODO 64 bit download and add, use if conditions cp lsb-release ~/tmp/remaster-root/tmp cp meiga_0.3.3-1_i386.deb ~/tmp/remaster-root/tmp cp google-chrome-beta_current_i386.deb ~/tmp/remaster-root/tmp cp addakirad.deb ~/tmp/remaster-root/tmp 6 Apply_Gconf_Setting.sh #!/bin/bash ### Putting icons on Desktop gconftool-2 --type boolean --set /apps/nautilus/desktop/computer_icon_visible true gconftool-2 --type boolean --set /apps/nautilus/desktop/home_icon_visible true gconftool-2 --type boolean --set /apps/nautilus/desktop/network_icon_visible true gconftool-2 --type boolean --set /apps/nautilus/desktop/trash_icon_visible true gconftool-2 --type boolean --set /apps/nautilus/desktop/volumes_visible true #### Nautilus Browser Mode gconftool-2 --type boolean --set /apps/nautilus/preferences/always_use_browser true #### Changing name of icons gconftool-2 --type string --set /apps/nautilus/desktop/trash_icon_name 'Recycle Bin' gconftool-2 --type string --set /apps/nautilus/desktop/network_icon_name 'ECB Network Places' gconftool-2 --type string --set /apps/nautilus/desktop/computer_icon_name 'ECB Computer' gconftool-2 --type string --set /apps/nautilus/desktop/home_icon_name 'ECB Home Documents' #### Changing Wallpaper gconftool-2 --type string --set /desktop/gnome/background/picture_filename /usr/share/backgrounds/ecblinux-wallpaper.png #### Disabling Update popup gconftool-2 --type boolean --set /apps/update-notifier/auto_launch false #### Gedit Settings gconftool-2 --type boolean --set /apps/gedit-2/preferences/editor/current_line/highlight_current_line true gconftool-2 --type boolean --set /apps/gedit- 2/preferences/editor/line_numbers/display_line_numbers true gconftool-2 --type boolean --set /apps/gedit-2/preferences/syntax_highlighting/enable true 7 #### Making Single Workspace gconftool-2 --type int --set /apps/metacity/general/num_workspaces 1 #### Maximum Scrolling in Terminal gconftool-2 --type int --set /apps/gnome-terminal/profiles/Default/scrollback_lines 100000 ##### Ctrl + Alt + Bksp ################ gconftool-2 --type list --list-type string --set /desktop/gnome/peripherals/keyboard/kbd/options '[terminate terminate:ctrl_alt_bksp]' #### Set ScreenSaver ################# gconftool-2 --type list --list-type string --set /apps/gnome-screensaver/themes '[screensavers- personal-slideshow]' ###### Change Logo of Login window to distributor Logo ###################### sudo -u gdm gconftool-2 --set /apps/gdm/simple-greeter/logo_icon_name --type string "distributor- logo" ####### Fixing the Lucid Button Icons ######## gconftool-2 --set /apps/metacity/general/button_layout --type string menu:minimize,maximize,close exit 0 Apply Theme Changes.sh #!/bin/bash ########## Set distributor Logo ########################################### cp images/start-here.svg /usr/share/icons/Humanity/places/16/start-here.svg cp images/start-here.svg /usr/share/icons/Humanity/places/22/start-here.svg cp images/start-here.svg /usr/share/icons/Humanity/places/24/start-here.svg cp images/start-here.svg /usr/share/icons/Humanity/places/32/start-here.svg cp images/start-here.svg /usr/share/icons/Humanity/places/48/start-here.svg 8 cp images/start-here.svg /usr/share/icons/Humanity/places/64/start-here.svg ########## Set Splash Screen + GDM