сколько места делает данный пакет и зависимости, стоимость?

Как я решил эту проблему (только в школьной сети, дома и других были прекрасны) был «волшебным»

Я отключил беспроводной сетевой адаптер. Удалили все профили соединений (eth, wlan, mobile ...) через апплет сетевого менеджера. Перезагружать. Включенный беспроводной адаптер. Перезагрузка (я знаю, что я прихожу из Windows, и я ноб с Ubuntu). Подключите снова.

Я работал некоторое время без проблем. (Я не знаю, почему, но если кто-то выяснит это, пожалуйста, скажите мне)

1
задан 7 July 2014 в 18:00

3 ответа

Попробуйте выполнить следующую команду (чтобы освободить место на диске путем чистки):
echo -n | sudo apt-get purge <package> | grep "disk space will be freed"
или
echo -n | sudo apt-get purge --auto-remove <package> | grep "disk space will be freed"
, где заменить <package> на ваш package-name (пример: gimp). Это не будет очищать пакет с зависимостями, но только дает, сколько дискового пространства будет освобождено с помощью grep!
Просто попробуйте выполнить следующую команду (чтобы освободить дисковое пространство от чистки):
echo -n | sudo apt-get purge <package> | grep "disk space will be freed"
или
echo -n | sudo apt-get purge --auto-remove <package> | grep "disk space will be freed"
, где заменить <package> на ваш package-name (пример : gimp) Это не очистит пакет с зависимостями, а даст только освобождение дискового пространства с помощью grep!

Просто попробуйте следующую команду (чтобы освободить место на диске путем чистки):

dpkg-query -W -f='${Installed-Size;8}  ${Package}\n' | sort -n

или

dpkg-query -W -f='${Installed-Size;8}  ${Package}\n' | sort -n | more
Выше списка пакетов в соответствии с размером доступа, вы можете использовать tail для отображения пакетов, потребляющих верхний размер следующим образом:
dpkg-query -W -f='${Installed-Size;8}  ${Package}\n' | sort -n | tail

Просто попробуйте выполнить команду (чтобы освободить место на диске путем чистки):

dpkg-query -W -f='${Installed-Size;8}  ${Package}\n' | sort -n

или

dpkg-query -W -f='${Installed-Size;8}  ${Package}\n' | sort -n | more
Выше списка пакетов по размеру, вы можете использовать tail для отображения пакетов, потребляющих верхний размер, следующим образом:
dpkg-query -W -f='${Installed-Size;8}  ${Package}\n' | sort -n | tail
[!d33 ] Поиск размера неиспользуемого пакета: -
popularity-contest (8) - list the most popular Debian packages
popcon-largest-unused (8) - List size of unused packages

Выше списка пакетов по размеру, вы можете использовать tail для отображения пакетов, потребляющих верхний размер, следующим образом:

[d38 ]

Вы можете использовать больше для страницы:

5
ответ дан 24 May 2018 в 06:03
  • 1
    Каковы единицы «установленного размера», из dpkg / aptcache? Например, байты, килобайты ...? – Hi-Angel 16 December 2016 в 13:37

apt-cache show packagename перечисляет, помимо прочего, установленный размер пакета и зависимости пакета. Кроме того, apt-cache rdepends packagename перечисляет пакеты, которые используют этот пакет.

Возможно, вы захотите использовать последнюю команду и apt-cache policy packagename, чтобы определить, установлена ​​ли обратная зависимость.

2
ответ дан 24 May 2018 в 06:03
  • 1
    Этот размер не кажется читаемым человеком. – ThorSummoner 5 January 2016 в 03:49
  • 2
    [F1] находится в килобайтах, тогда как Size находится в байтах. Я должен был упомянуть об этом в своем ответе. – saiarcot895 5 January 2016 в 23:28

Вот сценарий, который делает это.

sudo apt-get install python-apt

и вы готовы к работе.

#!/usr/bin/env python2
# -*- coding: utf-8 -*-

from __future__ import (absolute_import, division,
                        print_function, unicode_literals)
import apt
from apt.cache import Filter, FilteredCache

MB = 1024*1024

class InstalledFilter(Filter):
    def apply(self, pkg):
        return pkg.is_installed

def iter_base_deps(cache, package):
    deps = []
    version = package.installed
    for dep_type in ('Depends', 'PreDepends', 'Recommends'):
        deps.extend(version.get_dependencies(dep_type))
    for dep in deps:
        for base_dep in dep:
            if base_dep.name in cache:
                yield base_dep

def main():
    package_ref_count = {}
    results = []

    cache = FilteredCache(apt.Cache())
    cache.set_filter(InstalledFilter())
    for package in cache:
        for base_dep in iter_base_deps(cache, package):
            if base_dep.name in package_ref_count:
                package_ref_count[base_dep.name] += 1
            else:
                package_ref_count[base_dep.name] = 1

    for package in cache:
        base_deps_size = 0
        base_deps = []
        for base_dep in iter_base_deps(cache, package):
            if package_ref_count[base_dep.name] == 1:
                base_deps.append(base_dep)
                base_deps_size += cache[base_dep.name].installed.installed_size
        total_size = package.installed.installed_size + base_deps_size
        results.append((total_size, package, base_deps_size, base_deps))

    for total_size, package, base_deps_size, base_deps in sorted(results, reverse=True):
        if package.name in package_ref_count:
            continue
        if total_size < MB:
            break
        self_size = package.installed.installed_size
        base_dep_count = len(base_deps)
        print('{:.1f} MB  {}'.format(total_size/MB, package.name) + \
              (' with {} deps'.format(base_dep_count) if base_dep_count else ''))
        if base_dep_count:
            print('    {:.1f} MB  self'.format(self_size/MB))
            for base_dep in base_deps:
                size = cache[base_dep.name].installed.installed_size
                print('    {:.1f} MB  {}'.format(size/MB, base_dep.name))


if __name__ == '__main__':
    main()

Пример вывода:

[ f2]
1
ответ дан 24 May 2018 в 06:03
  • 1
    Спасибо. Это то, что я хочу, список самых больших пакетов с размером, включая зависимости. Однако выход не завершен, на него приходится менее гигабайта. Моя система использует около 8 гигов. Большинство из них должно быть пакетами - я уверен - у меня почти нет данных. – Rolf 15 January 2018 в 16:37
  • 2
    @ Рольф, я рад, что это было полезно. В самом деле, много пакетов не указано, что происходит, если пакет зависит от нескольких других. Я пробовал строить зависимости в виде графика, таким образом, пользователь мог видеть все пакеты и все зависимости. Но он превращается в полный беспорядок, шар спагетти. Извините за поздний ответ. – user2745509 4 February 2018 в 04:03

Другие вопросы по тегам:

Похожие вопросы: