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 Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Mam kilka pytań na temat plików konfiguracyjnych oraz po części na temat samej konfiguracji debiana:
1. W jakich plikach jest trzymana konfiguracja locale? Można to co prawda skonfigurować przez dpkg-reconfigure locales lub też przez locale-gen usuwając uprzednio hashe z /etc/locale.gen ale gdzie np. ustawić język albo walutę? W dpkg-reconfigure locales jest tylko kilka opcji, które ustawiają wszystkie zmienne LC_ na pl_PL.UTF-8 a jakbym chciał mieć część zmiennych np. datę w en_US.UTF-8, to gdzie to dopisać? W archu te zmienne LC_ się dopisuje w /etc/locales.conf ale na debianie ten plik nie za bardzo działa.
2. Podobnie jak w 1 tyle że dpkg-reconfigure tzdata
3. Podobnie jak w 1 tyle że dpkg-reconfigure console-setup
4. Podobnie jak w 1 tyle że dpkg-reconfigure keyboard-configuration
5. Są jeszcze jakieś innej rzeczy (podstawowe), które można w taki sposób skonfigurować?
6. Przy instalacji debiana można doinstalować pakiety za pomocą:
tasksel install standard
To instaluje pakiety o priorytecie standard. Jak podejrzeć, które z pakietów mają taki priorytet oraz jakie są priorytety pakietów?
7. W pliku /etc/apt/apt.conf można skonfigurować zachowanie aptitude, min wyłączyć domyśle instalowanie pakietów sugerowanych i rekomendowanych (jest jakaś różnica między nimi? xD) przez dodanie
APT::Install-Recommends "false"; APT::Install-Suggests "false";
Czy istnieje możliwość skonfigurowania przez ten plik aptitude tak by nie usuwał plików w /var/cache/apt/archives ?
8. Czy istnieje możliwość inteligentnego czyszczenia pobranych paczek za pomocą aptitude albo i apt-get? Chodzi o to, że w przypadku archa można nakazać pacmanowi by nie usuwał pobranych paczek (domyślne) oraz poprzez dodanie jednego z poniższych wpisów do /etc/pacman.conf
CleanMethod = KeepInstalled # -- wyczyści paczki, które aktualnie nie są zainstalowane w systemie CleanMethod = KeepCurrent # -- wyczyści paczki o starszej wersji ale zostawi te, które nie są zainstalowane
i następnie przez ręczne wykonanie pacman -Sc zostanie oczyszczony cache w zależności od wybranej opcji. Można też wydać polecenie -Scc i zostanie cache opróżniony całkowicie -- coś w rozdaniu aptitude clean albo aptitude autoclean -- nigdy nie pamiętam, które jest od czego xD
9. Czy gdy korzystam z dhcpcd, plik /etc/network/interfaces jest do czegoś potrzebny? Pytam bo w przypadku dodania tam wpisu od eth0:
auto eth0 iface eth0 inet dhcp
dwukrotnie jest aktywowany dhcpcd, w efekcie przy starcie systemu dostaję błąd o obecności pliku .pid . Póki co wykomentowałem zawartość powyższego pliku, dhcpcd działa bez problemu, tak jak i internet.
To chyba tyle, jak będę miał więcej pytań to postnę je w tym wątku.
Offline
http://forum.dug.net.pl/viewtopic.php?id=19553 odnośnie aptitude. pamiętam też, że tak usuwałem pakiety;
aptitude purge --purge nazwa_pakietu
i raz na jakiś czas używałem aptitude clean.
jeśli chodzi o takie czyszczenie, w Archu też raz na jakiś czas logi (potrafią dużo zajmować);
rm /var/log/journal/*/*
Offline
Tylko mi chodzi o paczuszki, które są pobierane podczas instalacji -- chodzi o to by je zapisać sobie. Bo w archu wydzieliłem parę GiB na coś w rodzaju lokalnego mirroru. Trafiają tam wszystkie paczki, które pacman instaluje lub aktualizuje. A, że arch jest trochę żywszy niż debian, to sporo śmieci tam się zbiera po miesiącu. I czyszczenie starszych wersji pakietów mi się bardzo podoba i chciałbym coś takiego na debianie zrobić. Potem gdy jest zawał systemu, mogę podpiąć sobie to archiwum i z niego pakiety instalować a nie pobierać na nowo z internetu. Nie muszę też wypalać płytek i mam najnowsze wersje paczek zawsze -- to bardzo fajne rozwiązanie. Da się tak z aptitude?
Offline
morfik napisał(-a):
7. W pliku /etc/apt/apt.conf można skonfigurować zachowanie aptitude, min wyłączyć domyśle instalowanie pakietów sugerowanych i rekomendowanych (jest jakaś różnica między nimi? xD) przez dodanie
Kod:
APT::Install-Recommends "false"; APT::Install-Suggests "false";Czy istnieje możliwość skonfigurowania przez ten plik aptitude tak by nie usuwał plików w /var/cache/apt/archives ?
Widocznie jest:
Pakiet: kadu
Stan: zainstalowany
Zainstalowany automatycznie: nie
Wersja: 0.12.3-1
Priorytet: opcjonalny
Sekcja: net
Opiekun: Patryk Cisek <patryk@debian.org>
Architektura: amd64
Rozmiar rozpakowanego: 11,9 M
Wymaga: kadu-common (= 0.12.3-1), libqca2-plugin-ossl, libqt4-sql-sqlite, libqt4-svg, libc6 (>= 2.4), libenchant1c2a (>= 1.6), libgadu3 (>= 1:1.11.0), libgcc1 (>= 1:4.1.1), libidn11 (>= 1.13),
libindicate-qt1 (>= 0.2.5), libmpdclient2 (>= 2.1), libphonon4 (>= 4:4.2.0), libqca2 (>= 2.0.2), libqt4-dbus (>= 4:4.6.1), libqt4-network (>= 4:4.7.0~beta1), libqt4-script (>= 4:4.5.3),
libqt4-sql (>= 4:4.5.3), libqt4-xml (>= 4:4.5.3), libqt4-xmlpatterns (>= 4:4.5.3), libqtcore4 (>= 4:4.8.1), libqtgui4 (>= 4:4.8.0), libqtwebkit4 (>= 2.1.0~2011week13), libstdc++6 (>=
4.6), libx11-6, libxext6, libxfixes3, libxss1, phonon, zlib1g (>= 1:1.1.4)
Wymaga wstępnie: multiarch-support
Poleca: kadu-external-modules (>= 0.10.0-2)
Sugeruje: kadu-themes
W konflikcie z: kadu
Narusza zależności: kadu-external-modules (< 0.10.0-2), kadu-external-modules (< 0.10.0-2)
Zastępuje: kadu-external-modules (< 0.10.0-2), kadu-external-modules (< 0.10.0-2)
Opis: Gadu-Gadu/XMPP client for X11
Strona internetowa: http://kadu.net
Offline
morfik napisał(-a):
Tylko mi chodzi o paczuszki, które są pobierane podczas instalacji — chodzi o to by je zapisać sobie. Bo w archu wydzieliłem parę GiB na coś w rodzaju lokalnego mirroru. Trafiają tam wszystkie paczki, które pacman instaluje lub aktualizuje. A, że arch jest trochę żywszy niż debian, to sporo śmieci tam się zbiera po miesiącu. I czyszczenie starszych wersji pakietów mi się bardzo podoba i chciałbym coś takiego na debianie zrobić. Potem gdy jest zawał systemu, mogę podpiąć sobie to archiwum i z niego pakiety instalować a nie pobierać na nowo z internetu. Nie muszę też wypalać płytek i mam najnowsze wersje paczek zawsze — to bardzo fajne rozwiązanie. Da się tak z aptitude?
Dopisz do /etc/apt/apt.conf
Aptitude::Autoclean-After-Update "true";
Po każdym # aptitude update nieaktualne wersje paczek są czyszczone.
Offline
@yossarian — nie przeczę, że inne pakiety mogą się znaleźć w każdej z tych grup, pytanie czym się to różni, że nie można np połączyć tych grup pakietów w jedną?
EDIT:
Jest jakaś różnica między Aptitude:: i APT:: ? Z tego co widziałem to do apt-get się odnosi APT::GET::
I jeszcze to:
/etc/apt/conf file no longer exists (at least in testing), the configuration is now modular and the topic should be extended
specifically we are talking here about /etc/apt/apt.conf.d/70debconf file
@drelbrown — dobre. xD
Ign. http://ppa.launchpad.net oneiric/main Translation-pl_PL Ign. http://ppa.launchpad.net oneiric/main Translation-pl Ign. http://ppa.launchpad.net oneiric/main Translation-en Pobrano 419 kB w 14s (29,5 kB/s) Usuwanie nieaktualnych pobranych plików
Ostatnio edytowany przez morfik (2013-06-13 12:40:49)
Offline
morfik napisał(-a):
@yossarian — nie przeczę, że inne pakiety mogą się znaleźć w każdej z tych grup, pytanie czym się to różni, że nie można np połączyć tych grup pakietów w jedną?
Recommends
This declares a strong, but not absolute, dependency.
The Recommends field should list packages that would be found together with this one in all but unusual installations.
Suggests
This is used to declare that one package may be more useful with one or more others. Using this field tells the packaging system and the user that the listed packages are related to this one and can perhaps enhance its usefulness, but that installing this one without them is perfectly reasonable.
http://www.debian.org/doc/debian-policy/ch-relation … #s-binarydeps
Offline
Ok, to parę pytań z głowy. Zna ktoś odpowiedzi na pozostałe? xD
EDIT:
Ad 1:
Zmienne dopisuje się do pliku /etc/default/locale . Niemniej jednak gnome ignoruje ten plik i ustawia zmienne według własnego uznania. Niby można zmienić język przez plik ~/.dmrc :
[Desktop] Language=pl_PL.utf8 Layout=pl Session=gnome
ale nic poza tym. Także albo się zmieni wszystkie zmienne albo żadnej. xD
W /etc/pam.d/gdm3 jest też niby coś takiego:
session required pam_env.so readenv=1 envfile=/etc/default/locale
Myślałem, że wykomentowanie tego coś pomoże ale to tylko przestawiło trochę zmiennych pod locale na:
morfik:~$ locale LANG= LANGUAGE= LC_CTYPE="POSIX" LC_NUMERIC=pl_PL.utf8 LC_TIME=pl_PL.utf8 LC_COLLATE=C LC_MONETARY=pl_PL.utf8 LC_MESSAGES="POSIX" LC_PAPER="POSIX" LC_NAME="POSIX" LC_ADDRESS="POSIX" LC_TELEPHONE="POSIX" LC_MEASUREMENT=pl_PL.utf8 LC_IDENTIFICATION="POSIX" LC_ALL=
Plik /etc/default/locale ma zaś postać:
cat /etc/default/locale # File generated by update-locale LANG="pl_PL.UTF-8"
i domyślnie ma wpisany tylko język. Ustawienia tym pliku są honorowane przez tty. Czyli jak dopiszemy tam np. LC_TIME="en_US.UTF-8" i wydamy polecenie "date" pod tty, dostaniemy datę w wersji angielskiej, a nie polskiej.
Ad 2:
Strefa czasowa jest trzymana w /etc/timezone w postaci:
Europe/Warsaw
a plik /etc/localtime jest kopią /usr/share/zoneinfo/Europe/Warsaw -- w sumie to nie wiem czemu jest skopiowany, w archu jest link.
Ad 3:
Ustawienia tty są trzymane w pliku /etc/default/console-setup w postaci:
# CONFIGURATION FILE FOR SETUPCON # Consult the console-setup(5) manual page. ACTIVE_CONSOLES="/dev/tty[1-6]" CHARMAP="UTF-8" CODESET="Lat2" FONTFACE="Terminus" FONTSIZE="8x16" VIDEOMODE= # The following is an example how to use a braille font # FONT='lat9w-08.psf.gz brl-8x8.psf'
Ad 4:
Ustawienia klawiatury są trzymane w /etc/default/keyboard w postaci:
# KEYBOARD CONFIGURATION FILE # Consult the keyboard(5) manual page. XKBMODEL="logimel" XKBLAYOUT="pl" XKBVARIANT="" XKBOPTIONS="terminate:ctrl_alt_bksp" BACKSPACE="guess"
Z tym, że ta konfiguracja dotyczy chyba tylko tty -- xorga trzeba konfigurować oddzielnie w pliku /etc/X11/xorg.conf . No i gnome oczywiście nie honoruje ustawień xorga i ustawia po swojemu.
XKBMODEL można odczytać z pliku /usr/share/X11/xkb/rules/base.lst -- jest to zwykła lista i np pozycja od mojej klawiatury wygląda tak:
logimel Logitech Media Elite Keyboard
By ustawić keyboard layout już na starcie systemu trzeba zmienić w pliku /etc/initramfs-tools/initramfs.conf
KEYMAP=y
I wygenerować nowy initramfs:
update-initramfs -u
Ostatnio edytowany przez morfik (2013-06-13 19:09:40)
Offline
drelbrown napisał(-a):
Aptitude::Autoclean-After-Update "true";
Jednak aptitude/apt-get autoclean usuwa starsze wersje pakietów, a aptitude/apt-get clean usuwa wszystkie. Także można pominąć powyższy wpis — jak nie patrzeć trochę to spowolni pracę aptitude bo za każdym razem będzie próbowało usuwać stare pakiety ale dobrze być świadomym istnienia tej opcji. Raz na jakiś czas sobie przepuszczę aptitude autoclean i powinno trzymać w ryzach rozmiar lokalnego mirroru.
Ad 7 i 8:
Doszukałem się pliku /etc/cron.daily/apt — ma on treść:
#!/bin/sh #set -e # # This file understands the following apt configuration variables: # Values here are the default. # Create /etc/apt/apt.conf.d/02periodic file to set your preference. # # Dir "/"; # - RootDir for all configuration files # # Dir::Cache "var/cache/apt/"; # - Set apt package cache directory # # Dir::Cache::Archives "archives/"; # - Set package archive directory # # APT::Periodic::Enable "1"; # - Enable the update/upgrade script (0=disable) # # APT::Periodic::BackupArchiveInterval "0"; # - Backup after n-days if archive contents changed.(0=disable) # # APT::Periodic::BackupLevel "3"; # - Backup level.(0=disable), 1 is invalid. # # Dir::Cache::Backup "backup/"; # - Set periodic package backup directory # # APT::Archives::MaxAge "0"; (old, deprecated) # APT::Periodic::MaxAge "0"; (new) # - Set maximum allowed age of a cache package file. If a cache # package file is older it is deleted (0=disable) # # APT::Archives::MinAge "2"; (old, deprecated) # APT::Periodic::MinAge "2"; (new) # - Set minimum age of a package file. If a file is younger it # will not be deleted (0=disable). Usefull to prevent races # and to keep backups of the packages for emergency. # # APT::Archives::MaxSize "0"; (old, deprecated) # APT::Periodic::MaxSize "0"; (new) # - Set maximum size of the cache in MB (0=disable). If the cache # is bigger, cached package files are deleted until the size # requirement is met (the biggest packages will be deleted # first). # # APT::Periodic::Update-Package-Lists "0"; # - Do "apt-get update" automatically every n-days (0=disable) # # APT::Periodic::Download-Upgradeable-Packages "0"; # - Do "apt-get upgrade --download-only" every n-days (0=disable) # # APT::Periodic::Download-Upgradeable-Packages-Debdelta "1"; # - Use debdelta-upgrade to download updates if available (0=disable) # # APT::Periodic::Unattended-Upgrade "0"; # - Run the "unattended-upgrade" security upgrade script # every n-days (0=disabled) # Requires the package "unattended-upgrades" and will write # a log in /var/log/unattended-upgrades # # APT::Periodic::AutocleanInterval "0"; # - Do "apt-get autoclean" every n-days (0=disable) # # APT::Periodic::Verbose "0"; # - Send report mail to root # 0: no report (or null string) # 1: progress report (actually any string) # 2: + command outputs (remove -qq, remove 2>/dev/null, add -d) # 3: + trace on check_stamp() { stamp="$1" interval="$2" if [ $interval -eq 0 ]; then debug_echo "check_stamp: interval=0" # treat as no time has passed return 1 fi if [ ! -f $stamp ]; then debug_echo "check_stamp: missing time stamp file: $stamp." # treat as enough time has passed return 0 fi # compare midnight today to midnight the day the stamp was updated stamp_file="$stamp" stamp=$(date --date=$(date -r $stamp_file --iso-8601) +%s 2>/dev/null) if [ "$?" != "0" ]; then # Due to some timezones returning 'invalid date' for midnight on # certain dates (eg America/Sao_Paulo), if date returns with error # remove the stamp file and return 0. See coreutils bug: # http://lists.gnu.org/archive/html/bug-coreutils/2007-09/msg00176.html rm -f "$stamp_file" return 0 fi now=$(date --date=$(date --iso-8601) +%s 2>/dev/null) if [ "$?" != "0" ]; then # As above, due to some timezones returning 'invalid date' for midnight # on certain dates (eg America/Sao_Paulo), if date returns with error # return 0. return 0 fi delta=$(($now-$stamp)) # intervall is in days, convert to sec. interval=$(($interval*60*60*24)) debug_echo "check_stamp: interval=$interval, now=$now, stamp=$stamp, delta=$delta (sec)" # remove timestamps a day (or more) in the future and force re-check if [ $stamp -gt $(($now+86400)) ]; then echo "WARNING: file $stamp_file has a timestamp in the future: $stamp" rm -f "$stamp_file" return 0 fi if [ $delta -ge $interval ]; then return 0 fi return 1 } update_stamp() { stamp="$1" touch $stamp } # we check here if autoclean was enough sizewise check_size_constraints() { MaxAge=0 eval $(apt-config shell MaxAge APT::Archives::MaxAge) eval $(apt-config shell MaxAge APT::Periodic::MaxAge) MinAge=2 eval $(apt-config shell MinAge APT::Archives::MinAge) eval $(apt-config shell MinAge APT::Periodic::MinAge) MaxSize=0 eval $(apt-config shell MaxSize APT::Archives::MaxSize) eval $(apt-config shell MaxSize APT::Periodic::MaxSize) Cache="/var/cache/apt/archives/" eval $(apt-config shell Cache Dir::Cache::archives/d) # sanity check if [ -z "$Cache" ]; then echo "empty Dir::Cache::archives, exiting" exit fi # check age if [ ! $MaxAge -eq 0 ] && [ ! $MinAge -eq 0 ]; then debug_echo "aged: ctime <$MaxAge and mtime <$MaxAge and ctime>$MinAge and mtime>$MinAge" find $Cache -name "*.deb" \( -mtime +$MaxAge -and -ctime +$MaxAge \) -and -not \( -mtime -$MinAge -or -ctime -$MinAge \) -print0 | xargs -r -0 rm -f elif [ ! $MaxAge -eq 0 ]; then debug_echo "aged: ctime <$MaxAge and mtime <$MaxAge only" find $Cache -name "*.deb" -ctime +$MaxAge -and -mtime +$MaxAge -print0 | xargs -r -0 rm -f else debug_echo "skip aging since MaxAge is 0" fi # check size if [ ! $MaxSize -eq 0 ]; then # maxSize is in MB MaxSize=$(($MaxSize*1024)) #get current time now=$(date --date=$(date --iso-8601) +%s) MinAge=$(($MinAge*24*60*60)) # reverse-sort by mtime for file in $(ls -rt $Cache/*.deb 2>/dev/null); do du=$(du -s $Cache) size=${du%%/*} # check if the cache is small enough if [ $size -lt $MaxSize ]; then debug_echo "end remove by archive size: size=$size < $MaxSize" break fi # check for MinAge of the file if [ $MinAge -ne 0 ]; then # check both ctime and mtime mtime=$(stat -c %Y $file) ctime=$(stat -c %Z $file) if [ $mtime -gt $ctime ]; then delta=$(($now-$mtime)) else delta=$(($now-$ctime)) fi if [ $delta -le $MinAge ]; then debug_echo "skip remove by archive size: $file, delta=$delta < $MinAgeSec" break else # delete oldest file debug_echo "remove by archive size: $file, delta=$delta >= $MinAgeSec (sec), size=$size >= $MaxSize" rm -f $file fi fi done fi } # deal with the Apt::Periodic::BackupArchiveInterval do_cache_backup() { BackupArchiveInterval="$1" if [ $BackupArchiveInterval -eq 0 ]; then return fi # Set default values and normalize CacheDir="/var/cache/apt" eval $(apt-config shell CacheDir Dir::Cache/d) CacheDir=${CacheDir%/} if [ -z "$CacheDir" ]; then debug_echo "practically empty Dir::Cache, exiting" return 0 fi Cache="${CacheDir}/archives/" eval $(apt-config shell Cache Dir::Cache::Archives/d) if [ -z "$Cache" ]; then debug_echo "practically empty Dir::Cache::archives, exiting" return 0 fi BackupLevel=3 eval $(apt-config shell BackupLevel APT::Periodic::BackupLevel) if [ $BackupLevel -le 1 ]; then BackupLevel=2 ; fi Back="${CacheDir}/backup/" eval $(apt-config shell Back Dir::Cache::Backup/d) if [ -z "$Back" ]; then echo "practically empty Dir::Cache::Backup, exiting" 1>&2 return fi CacheArchive="$(basename "${Cache}")" test -n "${CacheArchive}" || CacheArchive="archives" BackX="${Back}${CacheArchive}/" for x in $(seq 0 1 $((${BackupLevel}-1))); do eval "Back${x}=${Back}${x}/" done # backup after n-days if archive contents changed. # (This uses hardlink to save disk space) BACKUP_ARCHIVE_STAMP=/var/lib/apt/periodic/backup-archive-stamp if check_stamp $BACKUP_ARCHIVE_STAMP $BackupArchiveInterval; then if [ $({(cd $Cache 2>/dev/null; find . -name "*.deb"); (cd $Back0 2>/dev/null;find . -name "*.deb") ;}| sort|uniq -u|wc -l) -ne 0 ]; then mkdir -p $Back rm -rf $Back$((${BackupLevel}-1)) for y in $(seq $((${BackupLevel}-1)) -1 1); do eval BackY=${Back}$y eval BackZ=${Back}$(($y-1)) if [ -e $BackZ ]; then mv -f $BackZ $BackY ; fi done cp -la $Cache $Back ; mv -f $BackX $Back0 update_stamp $BACKUP_ARCHIVE_STAMP debug_echo "backup with hardlinks. (success)" else debug_echo "skip backup since same content." fi else debug_echo "skip backup since too new." fi } # sleep for a random interval of time (default 30min) # (some code taken from cron-apt, thanks) random_sleep() { RandomSleep=1800 eval $(apt-config shell RandomSleep APT::Periodic::RandomSleep) if [ $RandomSleep -eq 0 ]; then return fi if [ -z "$RANDOM" ] ; then # A fix for shells that do not have this bash feature. RANDOM=$(( $(dd if=/dev/urandom bs=2 count=1 2> /dev/null | cksum | cut -d' ' -f1) % 32767 )) fi TIME=$(($RANDOM % $RandomSleep)) debug_echo "sleeping for $TIME seconds" sleep $TIME } debug_echo() { # Display message if $VERBOSE >= 1 if [ "$VERBOSE" -ge 1 ]; then echo $1 1>&2 fi } check_power(){ # laptop check, on_ac_power returns: # 0 (true) System is on main power # 1 (false) System is not on main power # 255 (false) Power status could not be determined # Desktop systems always return 255 it seems if which on_ac_power >/dev/null; then on_ac_power POWER=$? if [ $POWER -eq 1 ]; then debug_echo "exit: system NOT on main power" return 1 elif [ $POWER -ne 0 ]; then debug_echo "power status ($POWER) undetermined, continuing" fi debug_echo "system is on main power." fi return 0 } # ------------------------ main ---------------------------- if test -r /var/lib/apt/extended_states; then # Backup the 7 last versions of APT's extended_states file # shameless copy from dpkg cron if cd /var/backups ; then if ! cmp -s apt.extended_states.0 /var/lib/apt/extended_states; then cp -p /var/lib/apt/extended_states apt.extended_states savelog -c 7 apt.extended_states >/dev/null fi fi fi # check apt-config exstance if ! which apt-config >/dev/null ; then exit 0 fi # check if the user really wants to do something AutoAptEnable=1 # default is yes eval $(apt-config shell AutoAptEnable APT::Periodic::Enable) if [ $AutoAptEnable -eq 0 ]; then exit 0 fi # Set VERBOSE mode from apt-config (or inherit from environment) VERBOSE=0 eval $(apt-config shell VERBOSE APT::Periodic::Verbose) debug_echo "verbose level $VERBOSE" if [ "$VERBOSE" -le 2 ]; then # quiet for 0,1,2 XSTDOUT=">/dev/null" XSTDERR="2>/dev/null" XAPTOPT="-qq" XUUPOPT="" else XSTDOUT="" XSTDERR="" XAPTOPT="" XUUPOPT="-d" fi if [ "$VERBOSE" -ge 3 ]; then # trace output set -x fi check_power || exit 0 # check if we can lock the cache and if the cache is clean if which apt-get >/dev/null && ! eval apt-get check -f $XAPTOPT $XSTDERR ; then debug_echo "error encountered in cron job with \"apt-get check\"." exit 0 fi # Global current time in seconds since 1970-01-01 00:00:00 UTC now=$(date +%s) # Support old Archive for compatibility. # Document only Periodic for all controling parameters of this script. UpdateInterval=0 eval $(apt-config shell UpdateInterval APT::Periodic::Update-Package-Lists) DownloadUpgradeableInterval=0 eval $(apt-config shell DownloadUpgradeableInterval APT::Periodic::Download-Upgradeable-Packages) UnattendedUpgradeInterval=0 eval $(apt-config shell UnattendedUpgradeInterval APT::Periodic::Unattended-Upgrade) AutocleanInterval=0 eval $(apt-config shell AutocleanInterval APT::Periodic::AutocleanInterval) BackupArchiveInterval=0 eval $(apt-config shell BackupArchiveInterval APT::Periodic::BackupArchiveInterval) Debdelta=1 eval $(apt-config shell Debdelta APT::Periodic::Download-Upgradeable-Packages-Debdelta) # check if we actually have to do anything that requires locking the cache if [ $UpdateInterval -eq 0 ] && [ $DownloadUpgradeableInterval -eq 0 ] && [ $UnattendedUpgradeInterval -eq 0 ] && [ $BackupArchiveInterval -eq 0 ] && [ $AutocleanInterval -eq 0 ]; then # check cache size check_size_constraints exit 0 fi # deal with BackupArchiveInterval do_cache_backup $BackupArchiveInterval # sleep random amount of time to avoid hitting the # mirrors at the same time random_sleep check_power || exit 0 # include default system language so that "apt-get update" will # fetch the right translated package descriptions if [ -r /etc/default/locale ]; then . /etc/default/locale export LANG LANGUAGE LC_MESSAGES LC_ALL fi # update package lists UPDATED=0 UPDATE_STAMP=/var/lib/apt/periodic/update-stamp if check_stamp $UPDATE_STAMP $UpdateInterval; then if eval apt-get $XAPTOPT -y update $XSTDERR; then debug_echo "download updated metadata (success)." if which dbus-send >/dev/null && pidof dbus-daemon >/dev/null; then if dbus-send --system / app.apt.dbus.updated boolean:true ; then debug_echo "send dbus signal (success)" else debug_echo "send dbus signal (error)" fi else debug_echo "dbus signal not send (command not available)" fi update_stamp $UPDATE_STAMP UPDATED=1 else debug_echo "download updated metadata (error)" fi else debug_echo "download updated metadata (not run)." fi # download all upgradeable packages (if it is requested) DOWNLOAD_UPGRADEABLE_STAMP=/var/lib/apt/periodic/download-upgradeable-stamp if [ $UPDATED -eq 1 ] && check_stamp $DOWNLOAD_UPGRADEABLE_STAMP $DownloadUpgradeableInterval; then if [ $Debdelta -eq 1 ]; then debdelta-upgrade >/dev/null 2>&1 || true fi if eval apt-get $XAPTOPT -y -d dist-upgrade $XSTDERR; then update_stamp $DOWNLOAD_UPGRADEABLE_STAMP debug_echo "download upgradable (success)" else debug_echo "download upgradable (error)" fi else debug_echo "download upgradable (not run)" fi # auto upgrade all upgradeable packages UPGRADE_STAMP=/var/lib/apt/periodic/upgrade-stamp if which unattended-upgrade >/dev/null && check_stamp $UPGRADE_STAMP $UnattendedUpgradeInterval; then if unattended-upgrade $XUUPOPT; then update_stamp $UPGRADE_STAMP debug_echo "unattended-upgrade (success)" else debug_echo "unattended-upgrade (error)" fi else debug_echo "unattended-upgrade (not run)" fi # autoclean package archive AUTOCLEAN_STAMP=/var/lib/apt/periodic/autoclean-stamp if check_stamp $AUTOCLEAN_STAMP $AutocleanInterval; then if eval apt-get $XAPTOPT -y autoclean $XSTDERR; then debug_echo "autoclean (success)." update_stamp $AUTOCLEAN_STAMP else debug_echo "autoclean (error)" fi else debug_echo "autoclean (not run)" fi # check cache size check_size_constraints # # vim: set sts=4 ai : #
Zgodnie z tym co piszą na wstępie, trzeba utworzyć plik /etc/apt/apt.conf.d/02periodic i wkleić tam porzadane opcje dostosowując je odpowiednio. Czyli w moim przypadku to by było:
APT::Periodic::MaxAge "0"; # - Set maximum allowed age of a cache package file. If a cache # package file is older it is deleted (0=disable) APT::Periodic::MaxSize "0"; # - Set maximum size of the cache in MB (0=disable). If the cache # is bigger, cached package files are deleted until the size # requirement is met (the biggest packages will be deleted # first). APT::Periodic::Download-Upgradeable-Packages "1"; # - Do "apt-get upgrade --download-only" every n-days (0=disable) #APT::Periodic::Download-Upgradeable-Packages-Debdelta "1"; # - Use debdelta-upgrade to download updates if available (0=disable) APT::Periodic::AutocleanInterval "14"; # - Do "apt-get autoclean" every n-days (0=disable) APT::Periodic::Verbose "1"; # - Send report mail to root # 0: no report (or null string) # 1: progress report (actually any string) # 2: + command outputs (remove -qq, remove 2>/dev/null, add -d) # 3: + trace on
I to praktycznie załatwia całą sprawę z lokalnym mirrorem. Przy czym ciekawą opcją jest jeszcze APT::Periodic::Download-Upgradeable-Packages-Debdelta "1"; — z tego co piszą w opisie pakietu debdelta:
debdelta is a program suite designed to compute changes between
Debian packages. These changes (deltas) are similar to the output of the
"diff" program in that they may be used to store and transmit only the
changes between Debian packages.
This suite contains 'debdelta-upgrade', that downloads deltas and use them
to create all Debian packages needed for an 'apt-get upgrade'.
It may be used in a Debian/unstable host (to speed up download of new
packages), or in a Debian/stable host (for security updates).
Similarly, when this package is installed, the 'cupt' package manager will
use deltas to upgrade the host.
wychodzi na to, że zostaną dociągnięte tylko kawałki pakietów. Podoba mi się. Musze to kiedyś przetestować. xD
Została 6 i 9 — orientuje się ktoś? xD
Ostatnio edytowany przez morfik (2013-06-13 19:58:21)
Offline
Ad 9:
These modern network configuration tools need to be configured properly to avoid conflicting with the legacy ifupdown package and its configuration file "/etc/network/interfaces".
Oczywiście chodzi o wicd i network-manager. Myślę, że też można pod to podpiąć dhcpcd i pewnie parę innych. W każdym razie, wspomniany plik jest już przestarzały i pochodzi z pakietu ifupdown i w przypadku dhcpcd, można bez problemu ten pakiet wyrzucić, tak samo jak i pozbyć się innego klienta dhcp, który jest automatycznie instalowany — pakiety: isc-dhcp-client isc-dhcp-common
Net póki co działa! xD
Ostatnio edytowany przez morfik (2013-06-14 12:56:35)
Offline
morfik napisał(-a):
6. Przy instalacji debiana można doinstalować pakiety za pomocą:
Kod:
tasksel install standardTo instaluje pakiety o priorytecie standard. Jak podejrzeć, które z pakietów mają taki priorytet oraz jakie są priorytety pakietów?
aptitude search ~pstandard ~pimportant ~prequired
Offline
Ad 6:
Priorytety pakietów:
-- required
-- important
-- standard
-- optional
-- extra
Dodatkowo pakiet może posiadać pole essential, które:
Essential
This is a boolean field which may occur only in the control file of a binary package or in a per-package fields paragraph of a source package control file.
If set to yes then the package management system will refuse to remove the package (upgrading and replacing it is still possible). The other possible value is no, which is the same as not having the field at all.
@yossarian — ja doszukałem się ciekawej linijki, która daje w rezultacie troszeczkę lepsze wyjście:
morfik:~$ aptitude search '~prequired'|sed -ne 's/^i [ A] \([^ ]*\).*$/\1/p' | tr '\n' ' ' | sort -u|fold -s ; echo base-files base-passwd bash bsdutils coreutils dash debconf debconf-i18n debianutils diffutils dpkg e2fslibs e2fsprogs findutils gcc-4.7-base gcc-4.8-base grep gzip hostname initscripts libacl1 libattr1 libblkid1 libc-bin libc6 libcomerr2 libgcc1 liblocale-gettext-perl liblzma5 libmount1 libncurses5 libpam-modules libpam-modules-bin libpam-runtime libpam0g libpcre3 libselinux1 libsepol1 libss2 libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl libtinfo5 libuuid1 login lsb-base mawk mount multiarch-support ncurses-base ncurses-bin passwd perl-base sed sensible-utils sysv-rc sysvinit sysvinit-utils tar tzdata util-linux zlib1g morfik:~$ aptitude search '~pimportant'|sed -ne 's/^i [ A] \([^ ]*\).*$/\1/p' | tr '\n' ' ' | sort -u|fold -s ; echo adduser apt apt-utils aptitude aptitude-common bsdmainutils cpio cron debian-archive-keyring dmidecode gnupg gpgv groff-base info install-info iproute iptables iputils-ping kmod libapt-inst1.5 libapt-pkg4.12 libboost-iostreams1.49.0 libbz2-1.0 libcwidget3 libgdbm3 libkmod2 libncursesw5 libnewt0.52 libpipeline1 libpopt0 libprocps0 libreadline6 libsigc++-2.0-0c2a libslang2 libssl1.0.0 libstdc++6 libudev0 libusb-0.1-4 logrotate man-db manpages nano net-tools netbase netcat-traditional procps readline-common rsyslog tasksel tasksel-data traceroute udev vim-common vim-tiny wget whiptail morfik:~$ aptitude search '~pstandard'|sed -ne 's/^i [ A] \([^ ]*\).*$/\1/p' | tr '\n' ' ' | sort -u|fold -s ; echo apt-listchanges at bash-completion bc bind9-host bsd-mailx bzip2 db5.1-util dc debian-faq dnsutils doc-debian exim4 exim4-base exim4-config exim4-daemon-light file ftp gettext-base host krb5-locales less libasprintf0c2 libbind9-80 libcap2 libclass-isa-perl libdb5.1 libdns88 libedit2 libevent-2.0-5 libgc1c2 libgcrypt11 libgnutls-openssl27 libgnutls26 libgpg-error0 libgpm2 libgssapi-krb5-2 libgssglue1 libidn11 libisc84 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libldap-2.4-2 liblockfile-bin liblockfile1 liblwres80 libmagic1 libnfsidmap2 libp11-kit0 libpci3 libsasl2-2 libsqlite3-0 libswitch-perl libtasn1-3 libtirpc1 libtokyocabinet9 libwrap0 libxml2 locales lsof m4 mime-support mlocate mutt ncurses-term nfs-common openssh-client patch pciutils perl perl-modules procmail python python-apt python-minimal python-reportbug python-support python2.6-minimal python2.7 reportbug rpcbind telnet texinfo time ucf w3m wamerican whois xz-utils
I jeszcze takie pytanie — jeżeli bym miał czysty system i dał do instalacji pakiety "standard" to pakiety z "important" i "required" zostaną automatycznie zainstalowane, czy trzeba by to w 3 krokach robić? — tasksel install dla required, important i standard?
Ostatnio edytowany przez morfik (2013-06-14 12:55:22)
Offline
morfik napisał(-a):
I jeszcze takie pytanie — jeżeli bym miał czysty system i dał do instalacji pakiety "standard" to pakiety z "important" i "required" zostaną automatycznie zainstalowane, czy trzeba by to w 3 krokach robić? — tasksel install dla required, important i standard?
Nie sprawdzę teraz, ale chyba właśnie te trzy: required, important i standard
Offline
Wyrzuciłem te 3 pakiety z important i po wydaniu polecenia
tasksel -t install standard
chciało mi je doinstalować. Także wychodzi na to, że dociąga ważniejsze paczki. Opcja -t umożliwia podejrzenie tego co zostanie zainstalowane:
root@morfikownia:~# tasksel -t install standard debconf-apt-progress -- apt-get -q -y -o APT::Install-Recommends=true -o APT::Get::AutomaticRemove=true install whois pciutils python2.6-minimal mlocate m4 exim4-base w3m less dnsutils bsd-mailx apt-listchanges rpcbind ifupdown doc-debian procmail dc python-support bind9-host isc-dhcp-client liblockfile-bin db5.1-util isc-dhcp-common mutt nfs-common exim4-config reportbug texinfo python2.7 time exim4 python-minimal debian-faq krb5-locales ftp lsof wamerican gettext-base at bc python-reportbug python openssh-client host exim4-daemon-light ncurses-term telnet python-apt
Można to sobie przekopiować, dostosować i manualnie za pomocą aptitude zainstalować, pozbywając się niepotrzebnych pakietów.
Offline
à propos zarządzania pakietami warto zapoznać się z aptitude-doc-en.
Powiedzcie proszę dlaczego exim4 jest zaliczony do standardowych narzędzi systemowych ? Dawno już to zauważyłem i swego czasu szukałem odpowiedzi bezskutecznie.
Ostatnio edytowany przez drelbrown (2013-06-14 18:55:03)
Offline
drelbrown bo wszyystkie komunikaty od różnch narzędzie deamonów są dostarczane na konto pocztowe roota. exim tylko działa lokalnie
Offline
10. Jest jakaś różnica między syslinux i extlinux? Z tego co zauważyłem to na archu w opisie pakietu syslinux jest:
Collection of boot loaders that boot from FAT, ext2/3/4 and btrfs filesystems, from CDs and via PXE
W debianie jest:
SYSLINUX is a collection of boot loaders which operates off Linux ext2/3/4 or
btrfs filesystems, FAT and NTFS filesystems, network servers using PXE
firmware, or from CD-ROMs.
Niby to samo ale przy instalacji syslinuxa (syslinux syslinux-common, tak jak i w przypadku archa) na debianie wyrzuca błąd, że boot nie jest fat'em i syslinux się nie chce zainstalować. Dociągnąłem extlinux, w opisie pakietu jest:
SYSLINUX is a collection of boot loaders which operates off Linux ext2/3/4 or
btrfs filesystems, FAT and NTFS filesystems, network servers using PXE
firmware, or from CD-ROMs.
This package contains the ext2/3/4 and btrfs bootloader.
Większego zamieszania to nie mogli zrobić? xD
W każdym razie zachowałem sobie stare konfigi z archlinuxa ale bootloader się nie załadował. Przeniosłem pliki z /boot/syslinux do /boot/extlinux zmieniając nazwę pliku konfiguracyjnego z syslinux.cfg na extlinux.cfg . To samo. Dopiero zmiana nazwy z extlinux.cfg na extlinux.conf (niektórzy to mają problemy xD) wpuściło mnie do okienka wyboru systemów i dalej już poszło bez problemów.
11. Następna sprawa — ten mbr od extlinux jest taki sam jak w przypadku syslinux? Niby wgrałem ten od extlinux i nie wiem za bardzo czy by się odpalił na tym mbr od syslinuxa z archa.
Na to akurat już znalazłem odpowiedź sumując oba mbry:
root:~# sha512sum /usr/lib/extlinux/mbr.bin ae4ff49a828b947ecb4a657591d7f41829e812c364146e417cbe1da8a2fd1d70134e6b0f77748c802fe7ac589fd1af43453fc0e674425f9787c3538f7f0035f9 /usr/lib/extlinux/mbr.bin root:~# sha512sum /usr/lib/syslinux/mbr.bin ae4ff49a828b947ecb4a657591d7f41829e812c364146e417cbe1da8a2fd1d70134e6b0f77748c802fe7ac589fd1af43453fc0e674425f9787c3538f7f0035f9 /usr/lib/syslinux/mbr.bin
12. I takie jeszcze pytanie — czy posiadając mbr syslinuxowy albo extlinuxowy oraz kopie plików z /boot/syslinux albo /boot/extlinux można bez problemu bootować systemy zmieniając tylko plik konfiguracyjny przy równoczesnym braku zainstalowanych pakietów od tych bootloaderów?
13. A skoro mowa o syslinuxie, to w jaki sposób obniżyć okienko wyboru systemów w menu?
14. Xorg — jaka jest różnica między
Section "InputDevice"
Section "InputClass"
przy konfigurowaniu klawiatury i myszy?
Ostatnio edytowany przez morfik (2013-06-15 16:02:23)
Offline
Ad 10:
Tyle z tym zamieszania, że głowa mała. Wychodzi na to, że syslinux to nazwa projektu, w którego skład wchodzi syslinux. :] W każdym razie, syslinux to bootloader od fat, extlinux od ext — nie mogli nazwać tego od fata, fatlinux?
Ad 12:
Tak się nie da, a przynajmniej nie do końca się da. Po odinstalowaniu pakietów: extlinux syslinux syslinux-common system będzie w stanie się uruchomić ale do momentu ruszenia pliku ldlinux.sys , który według tego opisu:
Syslinux boot process
Load MBR. At boot, the computer loads the MBR (/usr/lib/syslinux/mbr.bin).
Search active partition. The MBR looks for the partition that is marked as active (boot flag).
Execute volume boot record. Once found, the volume boot record (VBR) will be executed. In the case of ext2/3/4 and FAT12/16/32, the starting sector of ldlinux.sys is hard-coded into the VBR.
Execute ldlinux.sys. The VBR will execute (ldlinux.sys). Therefore, if the location of ldlinux.sys changes, Syslinux will no longer boot. (In the case of Btrfs, the above method will not work since files move around resulting in the sector location of ldlinux.sys changing. Therefore, the entire Syslinux code needs to be stored outside the filesystem. The code is stored in the sectors following the VBR.)
Search configuration file. Once Syslinux is fully loaded, it looks for a configuration file, either extlinux.conf or syslinux.cfg.
Load configuration. If one is found, the configuration file is loaded. If no configuration file is found, you will be given a Syslinux prompt.
jest wgrywany w pierwszy sektor partycji /boot . Dlatego też póki się tego pliku nie przekopiuje, mbr będzie wiedział gdzie go szukać. Tak samo w drugą stronę — mając zainstalowany syslinux extlinux syslinux-common i skopiujemy powyższy plik, nie da rady uruchomić systemu.
ldlinux.sys jest tworzony przez wydanie polecenia: extlinux --install /boot/extlinux — na dobrą sprawę nie wiem czy to co napisałem wyżej jest prawdą, ale nic innego mi nie przychodzi do głowy. Jakie by było inne wyjaśnienie niemożności odpalenia systemu tylko przez skopiowanie tego plik?
Ad 13:
Do przesuwania menu w {sys,ext}linux służą dwa parametry dopisywane do pliki konfiguracyjnego:
MENU HSHIFT 0 MENU VSHIFT 22
Nie wiem tylko jakie to są jednostki. W każdym razie przy tych parametrach okienko zostanie przesunięte w dół tak mniej więcej do środka ekranu.
Istnieją też i inne opcje, które mają wpływ na wygląd okna wyboru systemów. Więcej info na http://www.syslinux.org/wiki/index.php/Comboot/menu.c32
Ostatnio edytowany przez morfik (2013-06-16 19:40:30)
Offline
http://dug.net.pl/tekst/193/instalacja_debiana_metoda_debootstrap/
Ale chyba już znasz. Nic innego nie ma
Offline
Jaka jest różnica między tymi 4 pakietami i które instalować?
console-tools:
Pakiet pozwala na ustawianie i zarządzanie konsolą linuksową (np ekranem
i klawiaturą) oraz zarządzanie plikami czcionek konsolowych.
Pakiet console-tools został rozwinięty z wersji 0.94 standardowego pakietu
kbd. Integruje wiele poprawek i rozszerzeń, włączając nowe funkcje kbd do
wersji 0.99.
Prawdopodobnie konieczne będzie zainstalowanie dodatkowego zestawu plików
danych, takiego jak ten z pakietu console-data.
Dla zachowania zgodności z kbd można zainstalować pakiet kbd-compat.
console-setup:
Pakiet dostarcza konsolę z konfiguracją klawiatury, która jest taka sama,
jak ta używana przez X Window System. W rezultacie nie ma potrzeby
dublowania, bądź zmieniania plików związanych z klawiaturą tylko po to, aby
stworzyć proste dostosowania, takie jak sposób użycia martwych klawiszy,
klawiszy funkcjonujących jako AltGr lub klawisz Compose, klawiszy do
przełączania się pomiędzy alfabetem łacińskim i innym itd.
Pakiet zawiera również fonty konsolowe, obejmujące wiele języków z całego
świata. Dostarcza zunifikowany zestaw rodzin fontów - klasyczny VGA,
uproszczony Fixed oraz przejrzysty Terminus, TerminusBold i TerminusBoldVGA.
console-data:
Pakiet ten zawiera standardowe pliki danych dla narzędzi konsoli Linuksa.
.
Zawarto tu definicje klawiatury (mapy klawiszy), czcionki konsolowe dla
różnych kodowań, mapy definiujące standardowe zestawy znaków do użycia
przez aplikacje tekstowe oraz tablice cofnięć (ang. fallback tables),
pozwalające na przybliżanie nieobecnego znaku innym, obecnym w aktualnym
czcionce.
kbd:
Ten pakiet pozwala na ustawianie parametrów konsoli Linuksa oraz zmianę
czcionki i rozmiaru tekstu wirtualnych terminali, a także zmianę mapowania
klawiatury.
Razem z instalacją tego pakietu zalecane jest zainstalowanie również
zestawu plików z danymi - np. pakietu console-data.
Zgodnie z opisami, to albo zainstalować console-setup albo kbd + console-data + console-tools? I różnica ma być taka, że przy wykorzystaniu console-setup, klawiatura pod X-ami będzie skonfigurowana i nie trzeba będzie tego robić np. przez plik /etc/X11/xorg.conf. Dobrze to zrozumiałem?
Offline
Strony: 1