Как двоичные установочные файлы обрабатывают зависимости?

AFAIK num не является допустимым атомным векторным классом в R:

Возможные значения: NA (по умолчанию , когда используется type.convert), "NULL" (когда столбец пропущен), один из классов атомарных векторов (логический, целочисленный, числовой, комплексный, символьный, необработанный) или "коэффициент", «Дата» или «POSIXct». В противном случае должен быть метод as (из методы пакета) для преобразования из «символа» в указанный формальный класс.

Ваш код должен работать, если вы замените его на числовой:

> DF <- read.csv("data.csv", header = T, sep = ",", colClasses=c('num','num'))Error in methods::as(data[[i]], colClasses[i]) : 
  no method or default for coercing “character” to “num”

, тогда как

> DF <- read.csv("data.csv", header = T, sep = ",", colClasses=c('numeric','numeric'))
> 
> DF
  Test test2 test3
1   NA     1     1
2 10.8    -1     1
3  1.1     2     2
> 
0
25.04.2017, 08:59
3 ответа

Когда вы получаете список пакетов из репозитория через apt-get update , как в / var / lib / apt , так и в / var / lib / dpkg вы найдете информацию для всех пакетов в форме

Package: apt
Priority: important
Section: admin
Installed-Size: 3462
Maintainer: APT Development Team <deity@lists.debian.org>
Architecture: i386
Version: 1.3.1
Replaces: apt-utils (<< 1.3~exp2~)
Depends: adduser, gpgv | gpgv2 | gpgv1, debian-archive-keyring, init-system-helpers (>= 1.18~), libapt-pkg5.0 (>= 1.3~rc2), libc6 (>= 2.15), libgcc1 (>= 1:4.2), libstdc++6 (>= 5.2)
Recommends: gnupg | gnupg2 | gnupg1
Suggests: apt-doc, aptitude | synaptic | wajig, dpkg-dev (>= 1.17.2), powermgmt-base, python-apt
Breaks: apt-utils (<< 1.3~exp2~)
Filename: pool/main/a/apt/apt_1.3.1_i386.deb
Size: 1208426
MD5sum: 9d35afa0f8220cabf0c837f8073569c2
Description: commandline package manager
Description-md5: 9fb97a88cb7383934ef963352b53b4a7
Tag: admin::package-management, devel::lang:ruby, hardware::storage,
 hardware::storage:cd, implemented-in::c++, implemented-in::perl,
 implemented-in::ruby, interface::commandline, network::client,
 protocol::ftp, protocol::http, protocol::ipv6, role::program,
 scope::application, scope::utility, sound::player, suite::debian,
 use::downloading, use::organizing, use::searching, works-with::audio,
 works-with::software:package, works-with::text
SHA256: 9111e4e9ffe3f3dd3c62c4e67485d3495c15bf5d24f4f1c532db4430b389eb19

. Эта информация также присутствует в виде файла debian / control в каждом пакете .deb . Как видите, он содержит строку Depends: ... , в которой перечислены все зависимости. Из этих зависимостей apt-get рекурсивно вычисляет все пакеты, которые необходимо установить.

Когда пакет создается, эта информация добавляется сопровождающим пакета (хотя есть некоторые инструменты, помогающие с этим), аналогично тому, как вы вручную добавляете пакеты, когда сами компилируете.

3
28.01.2020, 02:15

Когда вы пытаетесь установить (используя dpkg -i ) некоторый *. Deb пакет с отсутствующей (неудовлетворенной) зависимостью, вы получаете сообщение об ошибке, в котором упоминаются отсутствующие пакеты. Затем вы можете apt-get install или aptitude install эти недостающие пакеты.

1
28.01.2020, 02:15

Человек, который упаковал файл .deb в первую очередь, выполнил процедуру, аналогичную той, что вы опишите для ручной установки. Когда они это сделали (если они сделали свою работу правильно), они также добавили информацию о необходимых зависимостях в файл debian / control исходного пакета.

apt-get и другие внешние интерфейсы dpkg действительно работают исключительно с пакетами .deb и связанной с ними базой данных пакетов с метаинформацией об этих пакетах. Иногда вы хотите создать пакет локального программного обеспечения .deb , чтобы вся цепочка работала правильно, и вы получали преимущества автоматической установки зависимостей и т. Д.

2
28.01.2020, 02:15

Теги

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