Как создать инсталляционный CD/DVD без интернета

Проблема: есть комп, инета - нету :frowning: Поэтому

1. /usr/calculate/share/distfiles

Присутствие всех исходников, необходимых для сборки системы, обязательно! Несём с работы, от друзей, из интернет-кафэ. :slight_smile:

2. Патчим /usr/calculate/install/calculate

!!! Использован [sys-apps/calculate-1.3.2]{style=“text-align:center;”}

--- calculate   2009-12-02 12:14:13.000000000 +0500
+++ calculate   2009-12-29 10:52:46.741742129 +0500
@@ -267,6 +267,7 @@
            "P" => '', "profile" => '',
            "l" => '', "list" => '',
            "c" => '', "configure" => '',
+           "n" => '', "nosync" => '',
            "D" => '', "dependence" => '',
            "m" => '', "make" => '',
            "p" => '', "pack" => '',
@@ -422,6 +423,10 @@
        if(!defined $data{arg}{'configure'}){$data{arg}{'configure'} = $data{arg}{'c'}}
        $data{builder}++;
    }
+   if(defined $data{arg}{n} || defined $data{arg}{'nosync'}){
+       if(!defined $data{arg}{'nosync'}){$data{arg}{'nosync'} = $data{arg}{'n'}}
+       $data{builder}++;
+   }
    if(defined $data{arg}{D} || defined $data{arg}{'dependence'}){
        if(!defined $data{arg}{'dependence'}){$data{arg}{'dependence'} = $data{arg}{'D'}}
        $data{CHECKSYSTEM_NOMES}++; $data{builder}++; $data{builder_chroot}++; #флаг того что директория chroot должна быть создана предварительно
@@ -534,6 +539,7 @@
        printmes("\n".gettext('System building').":\n");
        printmes("  -l, --list\t\t"); printmes(gettext('show the package list incoming in the distributive file')."\n");
        printmes("  -c, --configure\t"); printmes(gettext('prepare system for building')."\n");
+       printmes("  -n, --nosync\t\t"); printmes(gettext('do not update portage and calculate overlay')."\n");
        printmes("  -D, --dependence\t"); printmes(gettext('check of dependences')."\n");
        printmes("  -m, --make\t\t"); printmes(gettext('make system')."\n");
        printmes("  -p, --pack\t\t"); printmes(gettext('pack the distribution package into the archive file')."\n");
@@ -3913,14 +3919,16 @@
        #-------------------------------------
         # выполним настройки в текущей системе
        #-------------------------------------
-       printmes("  ".gettext('Load')); printmes(" calculate overlay...");
-       if(!`layman -l | grep calculate`){
-           system "layman -S &>/dev/null";
-           system "layman -a calculate &>/dev/null";
-       }else{
-           system "layman -S &>/dev/null";
+       if(!defined $data{arg}{n} && !defined $data{arg}{nosync}){
+           printmes("  ".gettext('Load')); printmes(" calculate overlay...");
+           if(!`layman -l | grep calculate`){
+               system "layman -S &>/dev/null";
+               system "layman -a calculate &>/dev/null";
+           }else{
+               system "layman -S &>/dev/null";
+           }
+           printmes(" ".gettext('done').".\n");
        }
-       printmes(" ".gettext('done').".\n");

        #Скопируем calculate overlay
        printmes("  ".gettext('Transfer calculate overlay to system')); printmes("...");
@@ -4002,8 +4010,21 @@

    #chroot layman -S
    if($data{stage} =~m/iso$/){
-       printmes("  ".gettext('Perform calculate overlay update')); printmes("...");
-       if(system "$data{path} chroot $data{chroot} layman -S &>/dev/null"){
+       if(!defined $data{arg}{n} && !defined $data{arg}{nosync}){
+           printmes("  ".gettext('Perform calculate overlay update')); printmes("...");
+           if(system "$data{path} chroot $data{chroot} layman -S &>/dev/null"){
+               beep();
+               printmes(" ".gettext('error')."!\n");
+           }else{
+               printmes(" ".gettext('done').".\n");
+           }
+       }
+   }
+
+   #chroot emerge --sync
+   if(!defined $data{arg}{n} && !defined $data{arg}{nosync}){
+       printmes("  ".gettext('Perform portages update')); printmes("...");
+       if(system "$data{emergerun1} --sync $data{emergerun2} &>/dev/null"){
            beep();
            printmes(" ".gettext('error')."!\n");
        }else{
@@ -4011,15 +4032,6 @@
        }
    }

-   #chroot emerge --sync
-   printmes("  ".gettext('Perform portages update')); printmes("...");
-   if(system "$data{emergerun1} --sync $data{emergerun2} &>/dev/null"){
-       beep();
-       printmes(" ".gettext('error')."!\n");
-   }else{
-       printmes(" ".gettext('done').".\n");
-   }
-
    #chroot emerge sys-apps/portage
    printmes("  ".gettext('Execute')); printmes(" emerge sys-apps/portage...");
    if(system "$data{emergerun1} sys-apps/portage $data{emergerun2} &>/dev/null"){

3. Запускаем конфигурирование с опцией -n или --nosync

Calculate не будет “ломиться” в Интернет для обновления оверлея и портэджа.

no-sync.patch (3.87 KB)