Fork me on GitHub
Suzf  Blog

Tag sudo

pip_faq - Cannot fetch index base URL

新装了一个 ubuntu, 由于公司内诸多网络限制,未经认证的用户是禁止下载任何东西的。 自己就用 cntlm 搭了一个透明代理供自己科学上网。 hah cntlm 配置我这里就不做过多介绍了,请自行脑补。 配置全局代理
^_^[17:20:51][[email protected] ~]$tail -2  .profile
export http_proxy=http://X.X.X.X:PORT
export https_proxy=http://X.X.X.X:PORT
安装 paramiko
^_^[17:09:33][[email protected] ~]$sudo pip install paramiko
Downloading/unpacking paramiko
  Cannot fetch index base URL https://pypi.python.org/simple/
  Could not find any downloads that satisfy the requirement Flask
Cleaning up...
No distributions at all found for Flask
Storing debug log for failure in /home/lucy/.pip/pip.log
Woops, 不能用 Google 了一把 做了这么一些操作,能用了 喜出望外。 什么鬼? 和缓存有关? 和代理有关?看起来是和sudo 权限有关。
@[email protected][17:18:20][[email protected] ~]$rm -r ~/.pip/
^_^[17:18:26][[email protected] ~]$sudo -E pip install paramiko
Downloading/unpacking paramiko
  Downloading paramiko-1.16.0-py2.py3-none-any.whl (169kB): 169kB downloaded
Downloading/unpacking pycrypto>=2.1,!=2.4 (from paramiko)
  Downloading pycrypto-2.6.1.tar.gz (446kB): 446kB downloaded
  Running setup.py (path:/tmp/pip_build_root/pycrypto/setup.py) egg_info for package pycrypto
    
Downloading/unpacking ecdsa>=0.11 (from paramiko)
  Downloading ecdsa-0.13-py2.py3-none-any.whl (86kB): 86kB downloaded
  ... ...
顺便来说一下 sudo
用户也可以通过su切换到root用户运行命令。然而与su的启动一个root shell允许用户运行之后的所有的命令不同,sudo可以针对单个命令授予临时权限。sudo仅在需要时授予用户权限,减少了用户因为错误执行命令损坏系统的可能性。sudo也可以用来以其他用户身份执行命令。此外,sudo可以记录用户执行的命令,以及失败的特权获取。

选项:
  -a type       使用指定的 BSD 认证类型
  -b            在后台运行命令
  -C fd         关闭所有 >= fd 的文件描述符
  -E            在执行命令时保留用户环境
  -e            编辑文件而非执行命令
  -g group      以指定的用户组执行命令
  -H            将 HOME 变量设为目标用户的主目录。
  -h            显示帮助消息并退出
  -i [command]  以目标用户身份运行一个登录 shell
  -K            完全移除时间戳文件
  -k            无效的时间戳文件
  -l[l] command 列出用户能执行的命令
  -n            非交互模式,将不提示用户
  -P            保留组向量,而非设置为目标的组向量
  -p prompt     使用指定的密码提示
  -S            从标准输入读取密码
  -s [command]  以目标用户身份运行 shell
  -U user       在列表时,列出指定用户的权限
  -u user       以指定用户身份运行命令(或编辑文件)
  -V            显示版本信息并退出
  -v            更新用户的时间戳而不执行命令
  --            停止处理命令行参数