Ответ 1
Возможно, вы захотите заглянуть в диспетчер пакетов Python, например pip. Если вы не хотите использовать диспетчер пакетов Python, вы должны иметь возможность загружать M2Crypto и строить/компилировать/устанавливать поверх старой установки.
Я запускаю Ubuntu 9:10 и установлен пакет M2Crypto (версия 0.19.1). Мне нужно загрузить, установить и установить последнюю версию пакета M2Crypto (0.20.2).
В пакете 0.19.1 есть файлы в нескольких местах, включая (/usr/share/pyshared и /usr/lib/pymodules.python2.6).
Как я могу полностью удалить версию 0.19.1 из своей системы перед установкой 0.20.2?
Возможно, вы захотите заглянуть в диспетчер пакетов Python, например pip. Если вы не хотите использовать диспетчер пакетов Python, вы должны иметь возможность загружать M2Crypto и строить/компилировать/устанавливать поверх старой установки.
Лучший способ, который я нашел, - запустить эту команду из терминала
sudo pip install [package_name] --upgrade
sudo
попросит ввести пароль root, чтобы подтвердить действие.
Чтобы автоматически обновить все устаревшие пакеты (которые были установлены с помощью pip), просто запустите script ниже,
pip install $(pip list --outdated | awk '{ print $1 }') --upgrade
Здесь pip list --outdated
отобразит все устаревшие пакеты, а затем мы передадим его awk, чтобы он печатал только имена.
Затем $(...)
сделает его переменной, а затем все будет выполняться автоматически. Убедитесь, что у вас есть разрешения. (Просто положите sudo
до pip, если вы в замешательстве)
Я бы назвал script named, pip-upgrade
Код ниже,
#!/bin/bash
sudo pip install $(pip list --outdated | awk '{ print $1 }') --upgrade
Затем используйте следующие строки script, чтобы подготовить его:
sudo chmod +x pip-upgrade
sudo cp pip-upgrade /usr/bin/
Затем просто нажмите pip-upgrade
и вуаля!
pip list --outdated
Вы получите список устаревших пакетов.pip install [package] --upgrade
Он обновит [package]
и удалит предыдущую версию.Чтобы обновить пипс:
py -m pip install --upgrade pip
Опять же, это удалит предыдущую версию pip и установит последнюю версию pip.
pip install package_name -U
pip install $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1) --upgrade
for i in $(pip list --outdated --format=columns |tail -n +3|cut -d" " -f1); do pip install $i --upgrade; done
Я думаю, что лучший однострочный:
pip install --upgrade <package>==<version>
Как был первоначально установлен пакет? Если это было через apt, вы могли бы просто сделать apt-get remove python-m2crypto
Если вы установили его с помощью easy_install, я уверен, что единственный способ - просто уничтожить файлы под lib, shared и т.д.
Моя рекомендация в будущем? Для установки пакетов используйте pip. Кроме того, вы могли бы найти что-то под названием virtualenv, чтобы ваши пакеты сохранялись на основе среды, а не только на root.
С пипсом это довольно легко:
pip install m2crypto
Но вы также можете установить из git, svn и т.д. репозиции с правильным адресом. Все это объясняется в документации
Получить все устаревшие пакеты и создать пакетный файл со следующими команды pip install xxx --upgrade для каждого устаревшего пакета
pip install -U $(pip list --outdated | awk 'NR>2 {print $1}')
$ pip install pipupgrade
$ pipupgrade --latest --interactive
pipupgrade поможет вам обновить вашу систему, локальные или пакеты из requirements.txt
файла! Он также выборочно обновляет пакеты, которые не нарушают изменения. Совместим с Python2. 7+, Python3. 4+ и pip9+, pip10+, pip18+.
ПРИМЕЧАНИЕ: я автор инструмента.