Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundację Dzieciom „Zdążyć z Pomocą”.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Mam kilka komputerów z Debianem i z zasady wkurzało mnie instalowanie lub odświeżanie pakietów, które potrafią mieć po kilkaset megabajtów i ściąganie ich za każdym razem z netu nie ma sensu.
Wiem, że można tak skonfigurować pendrajwa, żeby po włożeniu w gniazdo USB sam się montował w określonym miejscu, ale na razie mi się nie chciało z tym walczyć i użyłem prostszego, choć mniej wygodnego rozwiązania, czyli skryptów do montowania i odmontowywania archiwów.
Tutaj kilka słów wyjaśnienia.
/var/cache/apt/archives nie jest w żaden sposób obsługiwany przez system. apt lub apt-get szuka tam pakietu który chcemy zainstalować i jeśli znajdzie, to go bierze stamtąd zamiast ściągać z netu. Różnica jest taka, że apt-get zapisuje tam ściągnięte pakiety, a apt nie zapisuje. Niczego więcej nie robią, więc możemy w tym folderze mieć totalny burdel i absolutnie niczym to nie grozi. Wyjątkiem jest plik lock, który jest wykorzystywany do przeciwdziałania uruchomieniu apt lub apt-get wielokrotnie. Jeśli plik lock z jakiegoś powodu zniknie, to dostaniemy stosowny komunikat i apt przerwie działanie. Wtedy wystarczy zrobić touch /var/cache/apt/archives/lock
Jest jeszcze taka opcja, że zapomnimy zamontować pendrajwa i apt-get zapisze ściągnięte pakiety lokalnie. Wtedy wystarczy skopiować je na pendrajwa.
Oczywiście, żeby to wszystko miało sens, trzeba używać apt-get.
Na pendrajwie mam normalny folder o nazwie archives i dwa skrypty jak poniżej:
mount-archives
#!/bin/bash touch archives/lock mount archives /var/cache/apt/archives -o bind
umount-archives
#!/bin/bash umount /var/cache/apt/archives
Jakby się komuś chciało opisać jak zrobić żeby folder na pendrajwie montował się z automatu (jakoś przez /etc/udev/rules.d), to będę wdzięczny.
Offline





Cenzor wirtualnego świata
A nie lepiej wykorzystać mechanizm APT do tego celu w pliku /etc/apt/apt.conf ? Przykład:
# Useful for systems with:
# a separate /usr/ partition that is mounted in read only mode
# a /boot/ partition that is placed on a USB stick
# a /tmp/ partition where "noexec" option is set
# It also removes the following errors during package installation:
# Can't exec "/tmp/*": Permission denied at /usr/share/perl/5.26/IPC/Open3.pm line 178.
# open2: exec of /tmp/* configure 1.179 failed: Permission denied at /usr/share/perl5/Debconf/ConfModule.pm line 59.
DPkg
{
Pre-Invoke
{
"mount -o remount,exec /tmp";
"mount -o remount,exec /var/tmp";
"if grep -q boot /proc/mounts; then mount -o remount,rw /boot; else mount -o rw /boot; fi";
"mount -o remount,rw /usr";
};
Post-Invoke
{
"test ${NO_APT_REMOUNT:-no} = yes || mount -o remount,noexec /tmp || true";
"test ${NO_APT_REMOUNT:-no} = yes || mount -o remount,noexec /var/tmp || true";
"test ${NO_APT_REMOUNT:-no} = yes || umount /boot || true";
"test ${NO_APT_REMOUNT:-no} = yes || mount -o remount,ro /usr || true";
};
};To powyższe używałem kiedyś jak miałem osobny /boot/, który nie był podłączony do systemu gdy ten działał — jedynie na czas startu systemu i przy aktualizacjach.
Ostatnio edytowany przez morfik (Wczoraj 08:46:49)
Offline

Użytkownik


tuxcnc napisał(-a):
Mam kilka komputerów z Debianem i z zasady wkurzało mnie instalowanie lub odświeżanie pakietów, które potrafią mieć po kilkaset megabajtów i ściąganie ich za każdym razem z netu nie ma sensu.
Do tego celu jest gotowe rozwiązanie AptCacherNg - czyli lokalny serwer cache dla pakietów (nie tyko) debianowych. W skrócie: instalujesz apt-cacher-ng na jednym kompie - serwerze. Potem na wszystkich kompach w sieci (na serwerze też) dodajesz plik /etc/apt/apt.conf.d/02proxy:
Acquire::http::proxy "http://CacheServerIp:3142";
Wtedy jakikolwiek pobierany w sieci lokalnej pakiet trafi również do cache serwera. A przy ponownym pobieraniu (przez np. inny komp w lokalnej sieci) apt pobierze go właśnie z lokalnego cache.
Tutaj dokładna dokumentacja:
https://www.unix-ag.uni-kl.de/~bloch/acng/html/index.html
Ostatnio edytowany przez seler (Wczoraj 14:10:07)
Online
Na razie spróbowałem przez udev.
Zmarnowałem trochę czasu, żeby dowiedzieć się, że znowu jacyś paranoicy postanowili popsuć Linuksa...
Aczkolwiek udev formalnie działa, ale tego co potrzeba uruchomić się nim nie da, choć dawniej było to możliwe...
W każdym razie nie da się uruchomić montowania po włożeniu pamięci USB, co bez problemu robi np. thunar-volman.
Tyle że on montuje dysk w /media i żadnego bind nie zrobi.
Żeby było gorzej, to nie zamontuje dysku na istniejącym folderze, tylko utworzy nowy o innej nazwie, więc nie da się /var/cache/apt/archives skopiować i zlinkować do /media...
Nie mam pojęcia jak wytłumaczyć tym geniuszom, że nie należy naprawiać tego co działa...
Offline





Cenzor wirtualnego świata
@seler -- rzucę sobie okiem na to. xD
@tuxcnc -- ja to się nie da?
KERNEL=="sd?1", ACTION=="add", ENV{ID_SERIAL_SHORT}=="001CC0EC34A2BB318709004B", \
SYMLINK+="pen%n", \
RUN+="/usr/bin/udevil mount /dev/pen%n /mnt/debian"Offline
morfik napisał(-a):
@tuxcnc — ja to się nie da?
Kod:
KERNEL=="sd?1", ACTION=="add", ENV{ID_SERIAL_SHORT}=="001CC0EC34A2BB318709004B", \ SYMLINK+="pen%n", \ RUN+="/usr/bin/udevil mount /dev/pen%n /mnt/debian"
Mam do Ciebie ogromną prośbę - czytaj uważnie posty na które odpisujesz - obu nam zaoszczędzisz czas...
Offline

Użytkownik


ja mam na VirtualBox dodatkowy wspólny dysk dla kilku maszyn wirtualnych (Shareable)
Offline
seler napisał(-a):
Do tego celu jest gotowe rozwiązanie AptCacherNg
Postawiłem serwer, skonfigurowałem klienta i dostaję takie kwiatki:
root@HP-15:~# apt-get install 7zip Czytanie list pakietów... Gotowe Budowanie drzewa zależności... Gotowe Odczyt informacji o stanie... Gotowe Następujące pakiety zostaną zaktualizowane: 7zip 1 aktualizowanych, 0 nowo instalowanych, 0 usuwanych i 281 nieaktualizowanych. Konieczne pobranie 1 574 kB archiwów. Po tej operacji zostanie dodatkowo użyte 0 B miejsca na dysku. Błąd:1 http://deb.debian.org/debian trixie/main amd64 7zip amd64 25.01+dfsg-1~deb13u2 Nie udało się zainicjalizować połączenia z fe80::c7be:cd48:da6e:1d9e:3142 (fe80::c7be:cd48:da6e:1d9e). - connect (22: Zły argument) E: Nie udało się pobrać http://deb.debian.org/debian/pool/main/7/7zip/7zip_25.01%2bdfsg-1%7edeb13u2_amd64.deb Nie udało się zainicjalizować połączenia z fe80::c7be:cd48:da6e:1d9e:3142 (fe80::c7be:cd48:da6e:1d9e). - connect (22: Zły argument) E: Nie udało się pobrać niektórych archiwów, proszę spróbować uruchomić apt-get update lub użyć opcji --fix-missing.
Zapewne jest to kwestia jakichś ustawień, ale na chwilę obecną należy uznać, że to nie działa...
Offline

Użytkownik


tuxcnc napisał(-a):
Zapewne jest to kwestia jakichś ustawień, ale na chwilę obecną należy uznać, że to nie działa...
U mnie działa ok - więc pewnie to faktycznie kwestia ustawień u ciebie.
Online
seler napisał(-a):
U mnie działa ok - więc pewnie to faktycznie kwestia ustawień u ciebie.
Nie u mnie, tylko u każdego, kto będzie próbował to uruchomić na Debianie 13.05.
Cały czas w tym wątku kręcimy się wokół tego, co działało wczoraj, ale nie chce działać dzisiaj...
Offline
Strony: 1