我跑的时候得到了下面的错误bin/buildout.从来就检查这个问题,在这里上Plone.org,他们说,这是没有危险,但他们不说如何解决它.
我想跳过这个错误,以便在没有错误的情况下执行bin/buildout,直到现在我手动更新我的产品.我怎么解决这个问题?
root@sevilla2:/var/plone/zinstance# bin/buildout
While:
Installing.
Getting section precompile.
Initializing section precompile.
Loading zc.buildout recipe entry plone.recipe.precompiler:default.
An internal error occured due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
File "/var/plone/buildout-cache/eggs/zc.buildout-1.1.2-py2.4.egg/zc/buildout/buildout.py", line 1509, in main
getattr(buildout, command)(args)
File "/var/plone/buildout-cache/eggs/zc.buildout-1.1.2-py2.4.egg/zc/buildout/buildout.py", line 357, in install
[self[part]['recipe'] for part in install_parts]
File "/var/plone/buildout-cache/eggs/zc.buildout-1.1.2-py2.4.egg/zc/buildout/buildout.py", line 888, in __getitem__
options._initialize()
File "/var/plone/buildout-cache/eggs/zc.buildout-1.1.2-py2.4.egg/zc/buildout/buildout.py", line 969, in _initialize
recipe_class = _install_and_load(reqs, 'zc.buildout', entry, …Run Code Online (Sandbox Code Playgroud) 我在配方中有以下逻辑,如果文件丢失,则创建一个文件,然后尝试在其中插入一些行。
file "/root/myfile" do
owner 'root'
group 'root'
mode '400'
action :create_if_missing
end
file = Chef::Util::FileEdit.new('/root/myfile')
data_bag('my_databag').each do |user|
# ... lines using Chef resources like user, group, etc.
if node.chef_environment != "my_env"
line = "something to write in myfile"
Chef::Log.info("-----> #{line}")
file.insert_line_if_no_match(/#{line}/, line)
end
end
file.write_file
Run Code Online (Sandbox Code Playgroud)
myfile尽管我在导致异常的指令之前强制创建文件,但在不存在的情况下配方会失败。所以这是错误:
ArgumentError
-------------
File '/root/.testfile' does not exist
Relevant File Content:
----------------------
18:
19>> file = Chef::Util::FileEdit.new('/root/.testfile')
20:
Run Code Online (Sandbox Code Playgroud)
谁能帮助我理解为什么这不起作用?对此的任何帮助将不胜感激。
更新:我尝试先触摸该文件,但在同一行中仍然失败:
26: FileUtils.touch('/root/myfile')
27>> file = Chef::Util::FileEdit.new('/root/.testfile')
Run Code Online (Sandbox Code Playgroud) 我有以下类“MyControllerTest”用于测试“MyController”。我想在此类的不同测试中共享同一个对象,即“$algorithms”,但在尝试在不同位置添加变量后,我不知道该怎么做:
class MyControllerTest extends Zend_Test_PHPUnit_ControllerTestCase
{
// $algorithms = ... <----- does not work
public static function main()
{
$suite = new PHPUnit_Framework_TestSuite("MyControllerTest");
$result = PHPUnit_TextUI_TestRunner::run($suite);
}
public function setUp()
{
$this->bootstrap = new Zend_Application(
'testing',
APPLICATION_PATH . '/configs/application.ini'
);
$configuration = Zend_Registry::get('configuration');
// $algorithms = ... <----- does not work
parent::setUp();
}
public function tearDown()
{
}
public function test1() {
// this array shared in different tests
$algorithms[0] = array(
"class" => "Mobile",
"singleton" => "true",
"params" => …Run Code Online (Sandbox Code Playgroud) 我encrypt无法encrypted_strings为我提供的特定密码从库中提取使用该方法生成的 IV 。从文档中,我看到此方法使用 C 库根据密码生成密钥和 iv,该库调用与 openssl 相同的方法来生成密钥和 iv:EVP_BytesToKey。
我想要做的是能够为我指定的任何密码打印 IV,以便我可以将加密移植到另一种语言。
你能想到从密码中提取/打印这个 IV 向量的任何方法吗?
这些是该库使用的算法、模式和填充的详细信息:
下面的 ruby 脚本打印出加密的消息,但不知道使用了哪个 iv。
#!/usr/bin/ruby
require 'encrypted_strings'
data = 'Whackabad'
password = 'bAJLyifeUJUBFWdHzVbykfDmPHtLKLMzViHW9aHGmyTLD8hGYZ'
encrypted_data = data.encrypt(:symmetric, :password => password)
printf "Data: #{data}\n"
printf "Encrypted Data: #{encrypted_data}"
Run Code Online (Sandbox Code Playgroud)
我尝试使用openssl它,因为它允许我打印使用-p选项生成的 iv 和密钥,但它使用PKCS7填充而不是PKCS5. 因此,如果我运行下面的命令,则不会打印与上面的 ruby 代码相同的加密字符串。
echo -n 'Whackabad' | openssl enc -des-ede3-cbc -nosalt -a -k bAJLyifeUJUBFWdHzVbykfDmPHtLKLMzViHW9aHGmyTLD8hGYZ
Run Code Online (Sandbox Code Playgroud)
注意:-a:base64 编码,-k:密码和 echo -n:从字符串中删除新行,使其与字符串中的 ruby 大小完全相同。
如果我添加 …