This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
linux:local_repo_debian [2016/11/25 11:37] admin |
linux:local_repo_debian [2016/11/25 13:15] (current) admin |
||
---|---|---|---|
Line 11: | Line 11: | ||
apt-get install build-essential | apt-get install build-essential | ||
</code> | </code> | ||
- | |||
===== Install Apache ===== | ===== Install Apache ===== | ||
Line 17: | Line 16: | ||
We need to setup a web server to server all packages to the clients. In our case, let us install Apache web server. | We need to setup a web server to server all packages to the clients. In our case, let us install Apache web server. | ||
To install apache, run: | To install apache, run: | ||
+ | |||
<code bash> | <code bash> | ||
apt-get install apache2 | apt-get install apache2 | ||
</code> | </code> | ||
- | To test if Apache is working, open up your web browser and navigate to: http://<IP-Address>. | + | |
+ | To test if Apache is working, open up your web browser and navigate to: http://192.168.1.150 | ||
You should see the following output: | You should see the following output: | ||
+ | |||
+ | {{ :linux:apache2-debian-default-page-it-works-google-chrome_0011.jpg?nolink |}} | ||
===== Create A directory to store all packages ===== | ===== Create A directory to store all packages ===== | ||
Line 58: | Line 61: | ||
To verify the files, navigate to http://192.168.1.150/packages/amd64/ from your browser. You will see all packages of your Debian DVD’s. Here 192.168.1.150 is my Debian 8 server’s IP address. | To verify the files, navigate to http://192.168.1.150/packages/amd64/ from your browser. You will see all packages of your Debian DVD’s. Here 192.168.1.150 is my Debian 8 server’s IP address. | ||
- | Index of -packages-amd64 - Google Chrome_002 | + | {{ :linux:index-of-packages-amd64-google-chrome_002.jpg?nolink |}} |
+ | |||
+ | ===== Create Catalog file ===== | ||
+ | |||
+ | Switch to your repository directory i.e /var/www/html/packages/amd64/ : | ||
+ | |||
+ | <code bash> | ||
+ | cd /var/www/html/packages/amd64/ | ||
+ | </code> | ||
+ | and enter the following command to create a catalog file for APT use. You should run this command so that Synaptic Manager or APT will fetch the packages from our local repository. Otherwise the packages in your local repository will not be shown in Synaptic and APT. | ||
+ | <code bash> | ||
+ | dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz | ||
+ | </code> | ||
+ | This command will scan all deb files and create the local repository in your Debian server. This may take a while depending upon the number of packages in your local repository folder. Be patient or grab a cup of coffee. | ||
+ | |||
+ | ==== Sample output: ==== | ||
+ | |||
+ | <code bash> | ||
+ | pkg-scanpackages: warning: Packages in archive but missing from override file: | ||
+ | dpkg-scanpackages: warning: accountsservice acl acpi acpi-support-base acpid | ||
+ | adduser adwaita-icon-theme apache2-bin apg apt apt-listchanges apt-offline | ||
+ | apt-utils aptitude aptitude-common aptitude-doc-en aspell aspell-en at | ||
+ | at-spi2-core avahi-daemon | ||
+ | |||
+ | [...] | ||
+ | |||
+ | xserver-xorg-video-neomagic xserver-xorg-video-nouveau xserver-xorg-video-openchrome | ||
+ | xserver-xorg-video-r128 xserver-xorg-video-radeon xserver-xorg-video-savage | ||
+ | xserver-xorg-video-siliconmotion xserver-xorg-video-sisusb xserver-xorg-video-tdfx | ||
+ | xserver-xorg-video-trident xserver-xorg-video-vesa xserver-xorg-video-vmware xterm | ||
+ | xwayland xz-utils yelp yelp-xsl zenity zenity-common zlib1g | ||
+ | |||
+ | **dpkg-scanpackages: info: Wrote 1151 entries to output Packages file.** | ||
+ | </code> | ||
+ | Please note that whenever you add a new deb file in this repository, you should run the above command to create catalog file. | ||
+ | |||
+ | Done! We created the catalog file. | ||
+ | |||
+ | ===== Configure Server sources list ===== | ||
+ | |||
+ | After creating the catalog file, go to your server(local) system. Open /etc/apt/sources.list file. | ||
+ | <code bash> | ||
+ | nano /etc/apt/sources.list | ||
+ | </code> | ||
+ | Comment out all lines and add your APT repository location as shown below. | ||
+ | <code bash> | ||
+ | deb file:/var/www/html/packages/amd64/ / | ||
+ | </code> | ||
+ | Here is my Debian 8 server (Repository server) /etc/apt/sources.list file contents. | ||
+ | |||
+ | <code bash> | ||
+ | cat /etc/apt/sources.list | ||
+ | </code> | ||
+ | |||
+ | ==== Sample output: ==== | ||
+ | |||
+ | <code bash> | ||
+ | # | ||
+ | |||
+ | # deb cdrom:[Debian GNU/Linux 8.0.0 _Jessie_ - Official amd64 CD Binary-1 20150425-12:54]/ jessie main | ||
+ | |||
+ | #deb cdrom:[Debian GNU/Linux 8.0.0 _Jessie_ - Official amd64 CD Binary-1 20150425-12:54]/ jessie main | ||
+ | |||
+ | #deb http://mirror.cse.iitk.ac.in/debian/ jessie main | ||
+ | #deb-src http://mirror.cse.iitk.ac.in/debian/ jessie main | ||
+ | |||
+ | #deb http://security.debian.org/ jessie/updates main | ||
+ | #deb-src http://security.debian.org/ jessie/updates main | ||
+ | |||
+ | # jessie-updates, previously known as 'volatile' | ||
+ | #deb http://mirror.cse.iitk.ac.in/debian/ jessie-updates main | ||
+ | #deb-src http://mirror.cse.iitk.ac.in/debian/ jessie-updates main | ||
+ | |||
+ | #deb http://security.debian.org/ jessie/updates main contrib non-free | ||
+ | #deb-src http://security.debian.org/ jessie/updates main contrib non-free | ||
+ | #deb http://http.us.debian.org/debian jessie main contrib non-free | ||
+ | |||
+ | deb file:/var/www/html/packages/amd64/ / | ||
+ | </code> | ||
+ | Please note that I have disabled all external repository list in the above file except the local repository. Now update source list with following command: | ||
+ | |||
+ | <code bash> | ||
+ | apt-get update | ||
+ | </code> | ||
+ | |||
+ | ===== Testing Repository ===== | ||
+ | |||
+ | I am going to install vsftpd package from my local repository. | ||
+ | <code bash> | ||
+ | apt-get install vsftpd | ||
+ | </code> | ||
+ | Sample output: | ||
+ | |||
+ | <code bash> | ||
+ | Reading package lists... Done | ||
+ | Building dependency tree | ||
+ | Reading state information... Done | ||
+ | The following NEW packages will be installed: | ||
+ | vsftpd | ||
+ | 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. | ||
+ | Need to get 0 B/165 kB of archives. | ||
+ | After this operation, 374 kB of additional disk space will be used. | ||
+ | WARNING: The following packages cannot be authenticated! | ||
+ | vsftpd | ||
+ | Install these packages without verification [y/N]? y | ||
+ | Preconfiguring packages ... | ||
+ | Selecting previously unselected package vsftpd. | ||
+ | (Reading database ... 40161 files and directories currently installed.) | ||
+ | Unpacking vsftpd (from .../amd64/./vsftpd_3.0.2-18_amd64.deb) ... | ||
+ | Processing triggers for man-db ... | ||
+ | Setting up vsftpd (3.0.2-18) ... | ||
+ | Starting FTP server: vsftpd. | ||
+ | </code> | ||
+ | As you seen in the above output, i will able to install vsftpd package from my local repository. | ||
+ | |||
+ | ===== Configure Clients ===== | ||
+ | |||
+ | After creating the catalog file, go to your client systems. Open /etc/apt/sources.list file. | ||
+ | <code bash> | ||
+ | sudo nano /etc/apt/sources.list | ||
+ | </code> | ||
+ | Add the server repository location as shown below. Comment out all sources list except the local repository. | ||
+ | <code bash> | ||
+ | deb http://192.168.1.150/packages/amd64/ / | ||
+ | </code> | ||
+ | For 32 bit systems: | ||
+ | <code bash> | ||
+ | deb http://192.168.1.150/packages/i386/ / | ||
+ | </code> | ||
+ | Note: Put a space between deb and http://192.168.1.150/packages/amd64/ and /. | ||
+ | |||
+ | That’s it. Now run, | ||
+ | |||
+ | <code bash> | ||
+ | sudo apt-get update | ||
+ | sudo apt-get install <package-name> | ||
+ | </code> | ||
+ | You will be able to install, update and upgrade packages from your local Debian server repository without Internet Connection. | ||
+ | |||
+ | That’s all for now. Cheers! |