Ошибка обновления yum

Всем привет!

Пытаюсь обновить пакеты на сервере. Запускаю yum update
Получаю:

Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Traceback (most recent call last):
  File "/usr/bin/yum", line 29, in <module>
    yummain.user_main(sys.argv[1:], exit_code=True)
  File "/usr/share/yum-cli/yummain.py", line 375, in user_main
    errcode = main(args)
  File "/usr/share/yum-cli/yummain.py", line 281, in main
    return_code = base.doTransaction()
  File "/usr/share/yum-cli/cli.py", line 817, in doTransaction
    resultobject = self.runTransaction(cb=cb)
  File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 1852, in runTransaction
    self.skipped_packages, rpmdb_problems, cmdline)
  File "/usr/lib/python2.7/site-packages/yum/history.py", line 947, in beg
    pid   = self.pkg2pid(txmbr.po)
  File "/usr/lib/python2.7/site-packages/yum/history.py", line 804, in pkg2pid
    return self._ipkg2pid(po, create)
  File "/usr/lib/python2.7/site-packages/yum/history.py", line 798, in _ipkg2pid
    return self._pkgtup2pid(po.pkgtup, csum, create)
  File "/usr/lib/python2.7/site-packages/yum/history.py", line 781, in _pkgtup2pid
    checksum))
  File "/usr/lib/python2.7/site-packages/yum/sqlutils.py", line 168, in executeSQLQmark
    return cursor.execute(query, params)
sqlite3.ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.

Кто нибудь сталкивался? Как исправить? Спасибо заранее.
P.S. Что пробовал, но помогло
yum-complete-transaction
yum history new
rm -rf /var/cache/yum
yum clean all
rm -f /var/lib/rpm/__db*

Добрый день.
Хотелось бы предупредить недовольство участников форума и принести извИнения, если не верно выбрал раздел для вопроса.
Ну и за то, что не смог найти решение своей проблемы в поисковике.

Преамбула:
Линуксом пользуюсь, от силы, второй день — т.ч…

По проблеме:
Fedora 21, выполнен yum update, после первой загрузки, добавлены какие-то репозитории (К сожалению не могу сказать какие — команды для просмотра не знаю, по какой статье делал не помню… Вот такой вот ламер 8( )

При выполнении sudo yum update следующая ошибка:

Загружены модули: langpacks
adobe-linux-i386                                            |  
951 B  00:00     
adobe-linux-x86_64                                          |  951 B  00:00     
fedora/21/x86_64/metalink                                   |  31 kB  00:00     
rpmfusion-free                                              | 1.2 kB  00:00     
rpmfusion-free-updates                                      | 2.7 kB  00:00     
rpmfusion-nonfree                                           | 1.2 kB  00:00     
rpmfusion-nonfree-updates                                   | 2.7 kB  00:00     
Could not retrieve mirrorlist http://mirrors.rfremix.ru/mirrorlist?repo=free-fedora-updates-released-21&arch=x86_64 error was
12: Timeout on http://mirrors.rfremix.ru/mirrorlist?repo=free-fedora-updates-released-21&arch=x86_64: (28, 'Connection timed out after 30001 milliseconds')
^CCould not retrieve mirrorlist http://mirrors.rfremix.ru/mirrorlist?repo=nonfree-fedora-21&arch=x86_64 error was
14: curl#56 - "Callback aborted"


 One of the configured repositories failed (Russian Fedora for Fedora 21 - Nonfree),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Disable the repository, so yum won't use it by default. Yum will then
        just ignore the repository until you permanently enable it again or use
        --enablerepo for temporary usage:

            yum-config-manager --disable russianfedora-nonfree

     4. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:

            yum-config-manager --save --setopt=russianfedora-nonfree.skip_if_unavailable=true

Cannot find a valid baseurl for repo: russianfedora-nonfree/21/x86_64

______________________________

Пробовал сделать:
sudo yum-config-manager —disable russianfedora-nonfree
Результат:



========================= repo: russianfedora-nonfree ==========================
[russianfedora-nonfree]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/21
baseurl = 
cache = 0
cachedir = /var/cache/yum/x86_64/21/russianfedora-nonfree
check_config_file_age = True
cost = 1000
deltarpm_metadata_percentage = 100
deltarpm_percentage = 
enabled = 0
enablegroups = True
exclude = 
failovermethod = priority
gpgcadir = /var/lib/yum/repos/x86_64/21/russianfedora-nonfree/gpgcadir
gpgcakey = 
gpgcheck = True
gpgdir = /var/lib/yum/repos/x86_64/21/russianfedora-nonfree/gpgdir
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-russianfedora-nonfree-fedora
hdrdir = /var/cache/yum/x86_64/21/russianfedora-nonfree/headers
http_caching = all
includepkgs = 
ip_resolve = 
keepalive = True
keepcache = False
mddownloadpolicy = sqlite
mdpolicy = group:small
mediaid = 
metadata_expire = 21600
metadata_expire_filter = read-only:present
metalink = 
minrate = 0
mirrorlist = http://mirrors.rfremix.ru/mirrorlist?repo=nonfree-fedora-21&arch=x86_64
mirrorlist_expire = 86400
name = Russian Fedora for Fedora 21 - Nonfree
old_base_cache_dir = 
password = 
persistdir = /var/lib/yum/repos/x86_64/21/russianfedora-nonfree
pkgdir = /var/cache/yum/x86_64/21/russianfedora-nonfree/packages
proxy = False
proxy_dict = 
proxy_password = 
proxy_username = 
repo_gpgcheck = False
retries = 10
skip_if_unavailable = False
ssl_check_cert_permissions = True
sslcacert = 
sslclientcert = 
sslclientkey = 
sslverify = True
throttle = 0
timeout = 30.0
ui_id = russianfedora-nonfree/21/x86_64
ui_repoid_vars = releasever,
   basearch
username = 

После чего еще раз запустить:
sudo yum update — результат аналогичен первому запуску.

При этом смущает, что http://mirrors.rfremix.ru в браузере не открывается, ping на mirrors.rfremix.ru не проходит.

Но форуме, вот в этой теме:
Fedora 18 ошибка при обновлении

Нашел вариант с:
repoquery —whatrequires —recursive PACKAGENAME

Но, повторюсь, т.к. с линуксом полный ноль — даже не представляю, что делает данная команда (ушел читать).

_______________________________________________

Решение
_______________________________________________

Если кто-то из таких же нубов, как и я, зайдет — что бы не читать комментарии по оформлению и ошибкам:

Данная команда очищает кэш, на сколько понял из описания.
Кстати, есть еще и команда на создание кэша, но я её не применял:

После этого я получил ошибку по flash’y и «Разрешение зависимостей» — было решено через «yum remove» для флэша и его переустановкой.

Думаю всем уже известно, что поддержка обновлений системы Centos 6 уже завершена, поэтому при попытке установить какой-либо пакет вы можете получить некоторые ошибки. Рассмотрим некоторые из них.

yum error “Cannot retrieve metalink for repositoryepelPlease verify its path and try again

В EPEL теперь, по умолчанию, используется HTTPS вместо HTTP в названии URL, а установка HTTPS соединения требует, чтобы у вас в системе стояли свеженькие корневые и местные SSL-сертификаты. Некоторые советуют тупо заменить в файле /etc/yum.repos.d/epel.repo все «https» на «http». Да, так тоже работать будет, но это очень кривой способ. Проще и правильней обновить нужные пакеты, указав временное выключение репозитория EPEL.

И так, запускайте для правильного способа эти команды:
yum makecache --disablerepo=epel
yum upgrade --disablerepo=epel ca-certificates nss nss-tools nss-utils

или не очень правильно…
sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo

вручную
nano /etc/yum.repos.d/epel.repo
Приведем оригинальную строку к следующему виду — укажем http вместо https:
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
заменим на
mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
Ошибка: Cannot find a valid baseurl for repo: base

30 ноября 2020 года поддержка операционной системы CentOS 6 была прекращена. Поэтому, для возобновления работы менеджера пакетов YUM нужно обновить ссылки на репозитории.

Перейдем в директорию cd /etc/yum.repos.d/

За бэкапим оригинальный файл:

cp CentOS-Base.repo CentOS-Base.repo.old

Теперь откроем файлик репозитория редактором «nano CentOS-Base.repo» и приведем к следующему виду:

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=https://vault.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=https://vault.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=https://vault.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
baseurl=https://vault.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
baseurl=https://vault.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

Осталось только очистить кэш YUM и можно начать ставить нужные вам пакеты:

yum clean all

BEFORE TRYING ANY OF THIS, HAVE A BACKUP OF YOUR MACHINE, YOU COULD DAMAGE YOUR OS MORE/COMPLETELY

It seems that your yum variable $releasever is somehow corrupt,
it usually is caused by missing centos-release package on the machine for some obscure reasons.

You can check if you have the package by:

    rpm -qi centos-release

You will probably see:

    "package centos-release is not installed"

First find out the exact centos version that you have by executing as root:

    cat /etc/redhat-release

You will see something like this:

    CentOS Linux release 7.3.1611 (Core)

You can fetch the centos-release package from repo by:

    wget http://vault.centos.org/centos/7.3.1611/updates/x86_64/Packages/centos-release-7-3.1611.el7.centos.2.5.x86_64.rpm

Now run reinstall centos-release package via rpm:

    sudo rpm -Uvh --replacepkgs centos-release-7-3.1611.el7.centos.2.5.x86_64.rpm

As next you can try to install something with yum and you might get:

    [root@dcos-master3 ikerlan]# sudo yum install wget
    error: db5 error(-30969) from dbenv->open: BDB0091 DB_VERSION_MISMATCH: Database environment version mismatch
    error: cannot open Packages index using db5 - (-30969)
    error: cannot open Packages database in /var/lib/rpm
    CRITICAL:yum.main:

    Error: rpmdb open failed

Now you can try to reboot the machine or try to use the following command to rebuild the rpm db:

    rpm --rebuilddb

[Errno 14] HTTP/HTTPS Error 404

[Errno 14] PYCURL ERROR 22 — «The requested URL returned error: 403»

[Errno 14] Error 60 — It was impossible to connect to the CentOS servers

Summary

When trying to install or update packages using yum on client systems, yum is failing with one of the following errors:

[Errno 14] HTTP Error 404: Not Found
[Errno 14] HTTPS Error 404 - Not Found
[Errno 14] HTTP Error 404: Status 404
[Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 403"
[Errno 14] Error 60 - It was impossible to connect to the CentOS servers

Leading Causes

1. You are not connected to the internet.

2. This issue can also occur if the system is able to communicate with given server but could not find or access the requested package or path on the server.

3. You have a misconfigured proxy server.

4. You have a local mirror with issues.

Fixes

1. Validate the system can see things on the internet.

2. This issue can also occur due to corruption of the local machine cache, try to clear cache on system:

yum clean all
rm -rf /var/cache/yum/*

3. If you have a proxy server, validate it is configured properly in /etc/yum.conf. Here is an example (your names, passwords, and port numbers will obviously be different).

proxy=http://mystuff.mydomain.com:1234
# Account details for yum connections
proxy_username=proxy-user
proxy_password=proxy-password

4. Temporarily comment out the mirror= line in the the .repo file, then:

yum clean all; yum makecache

If that does not work or if you still need help, try one of our community help platforms:

Forums | Mailing Lists | Other — Getting Help

Понравилась статья? Поделить с друзьями:
  • Ошибка обновления win 7 8007000e
  • Ошибка обновления xsd утм
  • Ошибка обновления win 10 0x800f0922
  • Ошибка обновления xiaomi redmi note 8 pro
  • Ошибка обновления warspear online